翻譯express

Applicationhtml

app 對象一般用來表示Express程序。經過調用最頂層的express()方法建立express

var express = require('express');
var app = express();

app.get('/', function(req, res){
  res.send('hello world');
});

app.listen(3000);

app對象有如下這些方法:app

分發http請求,看如下例子,app方法和參數函數

配置中間件,詳見app.route性能

渲染html視圖,詳情見app.renderui

註冊一個模板引擎,詳情見app.enginespa

它也有設置(特性)能夠影響程序如何去表現;獲取更多的信息,看程序的設置項code

性能:router

app.locals()htm

app.locals()對象是JavaScript的對象,它的特性的在這個程序的本地變量。

app.locals.title
// => 'My App'

app.locals.email
// => 'me@myapp.com'

一旦設置,app.locals的值特性會保持和貫穿在應用程序的整個生命週期,在與res.locals (只在請求的時候有效)對比。

在程序中你能夠接受被渲染的模板中的本地變量。這對於提供輔助函數模板,還有app層次上的data,可是你不能夠在中間件接受本地變量。

app.locals.title = 'My App';
app.locals.strftime = require('strftime');
app.locals.email = 'me@myapp.com';

app.mountpath

app.mountpath的特性是一個子app被嵌入的路徑模式

一個子app是express的實例,能夠用來處理路由的請求。

var express = require('express');

var app = express(); // the main app
var admin = express(); // the sub app

admin.get('/', function (req, res) {
  console.log(admin.mountpath); // /admin
  res.send('Admin Homepage');
})

app.use('/admin', admin); // mount the sub app

它跟baseUrl中的req對象特性很相似,除了req以外,baseUrl還返回一個匹配的URL路徑而不是一個匹配的模式。

若是一個子app被嵌套在了多重的路徑模式中,那麼app.mountpath會返回被嵌套的列表,就像是下面例子那樣。

var admin = express();

admin.get('/', function (req, res) {
  console.log(admin.mountpath); // [ '/adm*n', '/manager' ]
  res.send('Admin Homepage');
})

var secret = express();
secret.get('/', function (req, res) {
  console.log(secret.mountpath); // /secr*t
  res.send('Admin Secret');
});

admin.use('/secr*t', secret); // load the 'secret' router on '/secr*t', on the 'admin' sub app
app.use(['/adm*n', '/manager'], admin); // load the 'admin' router on '/adm*n' and '/manager', on the parent app

Events

app.on('mount', callback(parent))

 mount事件會發生在子app嵌套在父app中時發生,父app對象會被傳遞在callbck函數中。

var admin = express();

admin.on('mount', function (parent) {
  console.log('Admin Mounted');
  console.log(parent); // refers to the parent app
});

admin.get('/', function (req, res) {
  res.send('Admin Homepage');
});

app.use('/admin', admin);
相關文章
相關標籤/搜索