ExpressJS基礎概念及簡單Server架設

NodeJShtml

Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。Node.js 使用了一個事件驅動非阻塞式 I/O 的模型,使其輕量又高效。Node.js 的包管理器 npm,是全球最大的開源庫生態系統。node

NodeJS安裝:http://nodejs.cn/web

 

模塊(module)路徑解析規則:mongodb

1 內置模塊    若是 require 函數請求的是一內置模塊,如 http、fs等,則直接返回內部模塊的導出對象。express

2 node_modules 目錄    NodeJS定義了一個特殊的node_modules 目錄用於存放模塊。例如某個模塊的絕對路徑是 /home/user/hello.js,在該模塊中使用 require('foo/bar') 方式加載模塊時,則NodeJS依次嘗試使用下面的路徑。npm

  /home/user/node_modules/foo/barapi

  /home/node_modules/foo/barrestful

  /node_modules/foo/bar架構

3 NODE_PATH 環境變量    NodeJS可經過 NODE_PATH 環境變量來指定額外的模塊搜索路徑。例如定義瞭如下 NODE_PATH 變量值:app

  NODE_PATH=/home/user/lib;/home/lib

  當使用 require('foo/bar') 的方式加載模塊時,則 NodeJS 依次嘗試如下路徑。

  /home/user/lib/foo/bar

  /home/lib/foo/bar

 

參考資料

Change node_modules location http://stackoverflow.com/questions/18974436/change-node-modules-location

《七天學會NodeJS》

 

ExpressJS

Express 是一個基於 Node.js 平臺的極簡、靈活的 web 應用開發框架,它提供一系列強大的特性,幫助你建立各類 Web 和移動設備應用。

 

Express 安裝

 1 npm install -g express 

-g 表示全局安裝 ExpressJS,能夠在任何地方使用它。

 

ExpressJS 架構示意圖

 

參考資料:

Creating RESTful APIs With NodeJS and MongoDB Tutorial http://adrianmejia.com/blog/2014/10/01/creating-a-restful-api-tutorial-with-nodejs-and-mongodb/#expressjs

ExpressJS中文網 http://www.expressjs.com.cn/

 

建立服務(Server)

加載所需模塊

 1 var express = require("express"); 2 var http = require("http"); 

 

添加中間件(Middleware)做 request 攔截和處理分發

 1 app.use(function(req, res, next){
 2     console.log("first middleware");
 3     if (req.url == "/"){
 4         res.writeHead(200, {"Content-Type": "text/plain"});
 5         res.end("Main Page!");
 6     }
 7     next();
 8 });
 9 
10 app.use(function(req, res, next){
11     console.log("second middleware");
12     if (req.url == "/about"){
13         res.writeHead(200, {"Content-Type": "text/plain"});
14         res.end("About Page!");
15     }
16     next();
17 });

 

建立服務並監聽

 1 http.createServer(app).listen(2015); 

 

示例文件 app.js

 

運行 NodeJS,並訪問 http://localhost:2015/

 

 

參考資料:

透析Express.js http://www.cnblogs.com/hyddd/p/4237099.html

相關文章
相關標籤/搜索