创建一个 Express 应用。express()是一个由 express 模块导出的入口(top-level)函数。

//最顶级:top-level

内置方法

express.static(root, [options])

1.express.static 是 Express 内置的唯一一个中间件

//表达.静态(根,选项)

2.root 参数指的是静态资源文件所在的根目录。

3.options 对象是可选。

options 对象属性
属性 描述 类型 默认值
点文件(dotfiles)              选择.服务。可能的值是“允许”、“拒绝”和“忽略” string      忽视(ignore)
实体标签(etag)                启用或禁用etag生成                             Boolean               true
扩张(extensions)               设置文件扩展名后备。                            boolean                false
索引(index)                  发送目录索引文件。设置false以禁用目录索引。        混合(Mixed)             index.html
上次修改时间(lastModified)         将最后修改的头部设置为操作系统上最后修改的日期。可能的值是真或假。     Boolean               true
最大年龄(maxAge)   以毫秒为单位设置缓存格式(Cache-Control)报头的max-age属性或ms格式的字符串 number               0
重定向(redirect)              当路径名是一个目录时,重定向到后面的“/”。            Boolean                true
设置头部(setHeaders)            用于设置HTTP头与文件一起使用的函数。                    Function

application(申请)

The app object conventionally denotes the Express application. Create it by calling the top-level express() function exported by the Express module:

//app对象通常表示Express应用程序。通过调用Express模块导出的顶级Express()函数来创建它:

var express = require('express');
var app = express(); app.get('/', function(req, res){
res.send('hello world');
}); app.listen(3000);

这app对象方法是

1.路由HTTP请求;例如,app.method和app.param。

2.配置中间件;看到app.route。

3.渲染HTML视图;看到app.render。

4.注册一个模板引擎;看到app.engine

Properties属性

app.locals

1.局部变量的对象是一个JavaScript对象,它的属性是应用程序中的局部变量。

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

一旦设置好,应用程序的值就会一直存在于应用程序的整个生命周期中,这与res.本地属性形成了鲜明的对比,这些属性仅适用于请求的生命周期。

您可以在应用程序中呈现的模板中访问局部变量。这对于为模板提供助手函数以及应用程序级数据非常有用。但是请注意,您不能在中间件中访问局部变量。

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

  

app.mountpath安装路径

app.mountpath属性是安装子应用程序的路径模式(s)。

子应用程序是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 //挂载子程序

 如果一个子应用被安装在多个路径模式上,那么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 安装,callback 回调函数,parent父

挂载事件是在一个子应用上触发的,当它被安装在一个父应用程序上时,父应用程序被传递给回调函数。

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);

 中间件

//中间件就是出来http的请求函数(req),特点就是处理一个中间件再传递给下一个中间件。

///中间件可以接收三个参数,HTTP请求(req),HTTP回应(res),回调函数(next)

//每个中间件都可以对HTTP请求(request对象)进行加工,并且决定是否调用next方法,将HTTP请求(request对象)再传给下一个中间件。

05-11 21:59