首頁 >web前端 >js教程 >nodejs教學 安裝express及設定app.js檔案的詳細步驟_json

nodejs教學 安裝express及設定app.js檔案的詳細步驟_json

WBOY
WBOY原創
2016-05-16 17:34:091283瀏覽

安裝express.js

如果你安裝了npm,安裝變得很簡單,只需要在終端機中運行下面的程式碼:

複製程式碼 程式碼如下:

npm install express -gd

-g代表安裝到NODE_PATH的lib裡面,而-d代表把依賴項套件也一起安裝。如果沒有-g的話會安裝目前所在的目錄(會建立一個node_modules的資料夾),你可以透過以下指令來比較兩者的不同:

複製程式碼 程式碼如下:

npm list -g
如果沒有npm,那麼我可以使用github來git下來最新的express。 好了,現在你可以透過express testapp來建立express實例。以下是範例:


複製程式碼 程式碼如下:
cd ~
express testapp
node app.js



這樣就建立了一個testapp的nodejs應用,而app.js是預設的應用程式主js。下面來詳細的說說app.js中的各項配置。

引入模組


複製程式碼 代碼如下:
代碼如下:



代碼如下: express = require('express');
 var app = module.exports = express.createServer();

require()是node.js提供的函數,可以讓你引入其他模組以呼叫模組的函數和變量,預設下node.js會在$NODE_PATH和目前js所在目錄下的node_modules資料夾下去尋找模組。 require也可以用來載入自己寫的模組喔~這樣牽涉到node.js的模組機制,後面有機會就在介紹。

第二行的express.createServer()就是在建立server,而中間的module.exports也是牽涉到node.js的模組機制,以後再說。

express的app.js的詳細設定說明

express.js繼承自connect模組,所以如果你的node_modules資料夾下沒有connect模組也是不行的。

設定views路徑與範本

我們再來看下面兩行:複製程式碼
程式碼如下:


app.set('views', __dirname '/views');
app.set('view engine', 'jade');

上面兩行是設定views資料夾,即模板資料夾,__dirname是node.js裡面的全域變量,即取得執行的js所在的路徑,另外__filename是目前執行的js檔名。所以,app.set(‘views', __dirname ‘/views');是設定views的資料夾。

而app.set('view engine', 'jade');是設定express.js所使用的render engine。除了Jade之外,express.js也支援EJS(embedded javascript)、Haml、CoffeScript和jQuery template等js模板。

app.use配置

複製程式碼
程式碼如下:


app.use(express.bodyParser(>

app.use(express.bodyParser(>
app.use(express.bodyParser()); 🎜>app.use(express.methodOverride());

app.use(app.router);
app.use(express.static(__dirname '/public'));

express.bodyParser()是Connect內建的middleware,設定此處可以將client提交過來的post請求放入request.body中。 express.methodOverride()也是Connect內建的,可以協助處理POST請求偽裝PUT、DELETE和其他HTTP methods。 app.router()是route requests,但express.js的官方文件是這句可有可無,而且經過測試還真的是這樣,不過還是寫上吧。

express.static()也是一個Connect內建的middleware來處理靜態的requests,例如css、js、img檔案等。所以static()裡面指定的資料夾中的檔案會直接當作靜態資源吐出來。

app.configure設定
複製程式碼


程式碼如下:


app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});app.configure('production', function(){  app.configure('production', function(){  app. (express.errorHandler());});

express.errorHandler() は、例外の処理を支援する Connect の組み込みミドルウェアです。これにより、app.configure() の最初の使用法も明らかになります。最初のパラメーターは、異なる実行環境で異なるレベルのダンプを設定できるように、node.js の環境設定です。 PS:node.js は、NODE_ENV 環境変数を通じて環境設定を取得します。例: コマンド ラインで、NODE_ENV=production ノード app.js は運用環境に入ることができます。

ルーティングとリクエストの処理

わかりました。これが、nodejs 処理リクエストの内容です:

コードをコピー コードは次のとおりです。

app.get('/', function (req, res){
res.render('index', {
title: 'Express'
});
});

上記のコードは、get リクエストのルート ディレクトリが呼び出されるときに、ビュー フォルダー内のインデックス テンプレートが呼び出され、受信パラメーターのタイトルが「Express」であることを意味します。このタイトルはテンプレート ファイルで直接使用できます。

エクスプレスで投稿リクエストを処理するには、app.post() を使用する必要があります。次のコードのような:

コードをコピー コードは次のとおりです。

app.post('/add', function(req ,res){
res.render('add', {
sum: req.body.a req.body.b
});
});

req.body は、express.bodyParser() が POST パラメータを処理した結果であると前述しました。

get メソッドと post メソッドに加えて、すべてのリクエストの処理を意味する app.all() もあります。

listen を追加して、nodejs サーバーを起動します

コードをコピーします コードは次のとおりです:

app.listen(3000);
console.log(
"Express サーバーは %s モードでポート %d をリッスンしています",
app.address().port,
app.settings.env);

ここまでで、Express の設定を基本的に理解しました。コードの各行の意味を理解せずに、これまでのように他のユーザーと Hello World を書くことはありません。

JS8.IN™より転載

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn