Express 中文API 笔记
Properties
app.locals
可以通过在app.locals中设置变量来进行全局访问,而res.locals设置的变量仅能在一次请求的生命周期中有效
app.mountpath
路径模式
Events
app.on('mount', callback(parent))
在子应用程序挂载到父应用程序上时,触发mount事件,并在回调函数中返回父应用程序的实例
Methods
app.all(path, callback [, callback ...])
用来给指定的请求路径添加一个或多个回调函数,回调函数最后需要执行next()将请求分发给后续的路由
app.all('/secret', function (req, res, next) {
console.log('Accessing the secret section ...')
next() // pass control to the next handler
});
app.delete(path, callback [, callback ...])
same as the app.all()
app.engine(ext, callback)
注册给定的模板引擎
app.get(name)
获取通过app.set(name, value)设置的属性值
app.get(path, callback [, callback ...])
get请求方式
app.set(name, value)
子程序:
-不继承具有默认值的变量的值。必须在子应用程序中设置值。
-继承没有默认值的变量的值;
例外: 子程序将继承trust proxy的值,不管它是否有默认值。子程序在生产环境下不会继承view cache中的值,即NODE_ENV 是production的时候
app.listen(path, [callback])
启动UNIX套接字并侦听给定路径上的连接。等同于 http.Server.listen()
app.listen([port[, host[, backlog]]][, callback])
返回一个 http.Server 对象
app.listen = function() { var server = http.createServer(this); return server.listen.apply(server, arguments); };
var app = express()
实际上返回一个js对象,能够作为node 中http和https的回调函数来处理请求响应
var express = require('express');
var https = require('https');
var http = require('http');
var app = express();
http.createServer(app).listen(80);
https.createServer(options, app).listen(443);
app.METHOD(path, callback [, callback ...])
app.param([name], callback)
name是参数名或者参数名组成的数组
回调函数的参数依次是req,res,next,参数值,参数名
所有的参数回调函数都会在该参数出现的路由被解析之前调用,且只调用一次
app.param()
也可以接受一个用户自定义的函数,该函数需要两个参数,第一个是请求时要捕获的参数名,第二个是任意对象,该函数的返回值必须是一个中间件,类似于正常模式下的callbackapp.path()
返回应用程序的标准路径
app.post(path, callback [, callback ...])
app.post('/', function (req, res) {
res.send('POST request to homepage');
});
app.put(path, callback [, callback ...])
app.render(view, [locals], callback)
通过回调函数返回视图的渲染HTML。它接受一个可选参数,该参数是包含视图的局部变量的对象。它类似于res.render(),但它不能自己将呈现的视图发送给客户端。
app.use([path,] callback [, callback...])
在请求路径与给定路径相同时,调用指定的中间件函数
不设置path参数的时候,路径默认为''/",意味着中间件函数将会在每次请求的时候执行
中间件函数是按顺序执行的,因此函数中的内容很重要
Error-handling middleware
错误处理中间件函数始终需要传递4个参数
app.use(function(err, req, res, next) {
console.error(err.stack);
res.status(500).send('Something broke!');
});