参考:http://expressjs.com/en/4x/api.html
引入express
模块:
var express = require('express');
我们知道,JavaScript
也有类似于Java
中的静态方法和实例方法、静态成员变量和实例成员变量的区分。
直接使用express.xx()
就是使用的静态方法,下面是express
的静态方法和静态成员变量:
express
还有很多的实例方法,这样获得express
实例:
var app = express();
使用app.xx()
就是使用的实例方法,下面是express
的实例方法和静态成员变量:
参考:http://expressjs.com/en/4x/api.html#app.listen
用户监听指定端口或者Unix Domain Socket
。作为服务器使用。
此方法是基于serve-static模块实现的。
options
对象的属性如下:
属性 | 类型 | 缺省值 | 说明 |
---|---|---|---|
dotfiles | String | ignore | 是否对外输出文件名以点(.)开头的文件。以点(.)开头的文件是隐藏文件,一般是不想让别人访问的。 可选值为:allow 、deny 和ignore |
etag | Boolean | true | 是否启用etag 生成。 |
extensions | Array | [] | 设置文件扩展名备份选项 |
index | Boolean | String | index.html | 发送目录索引文件,设置为false禁用目录索引。 |
lastModified | Boolean | true | 设置Last-Modified 头为文件在操作系统上的最后修改日期。 |
maxAge | Number | 0 | 以毫秒或者其字符串格式设置 Cache-Control 头的 max-age 属性。 |
redirect | Boolean | true | 当路径为目录时,重定向至“/”。 |
setHeaders | Boolean | true | 设置HTTP头以提供文件的函数。原型为function(response, path, stat) |
示例(创建一个静态的文件服务器):
var express = require('express');
app = express();
app.use(express.static(__dirname + '/public'));
app.listen(8080);
console.log('Server running at http://127.0.0.1:8080.');
上面将监听在8080
端口,所以这是一个服务器了,并且将__dirname + '/public'
目录映射为主机目录。可以直接访问该目录下的任何文件。
使用express
命令创建的Web App
的app.js
文件中有如下的代码:
app.use(express.static(path.join(__dirname, 'public')));
这表示,我们项目中的静态文件(js
、css
、其他文件)都放在public
目录下。
如果,我们不对js
、css
进行压缩处理,这倒是没什么问题,但是, 我们通常会对js
、css
进行压缩处理的, 我们希望使用压缩后的那些文件,而不是开发时候的源代码!所以,我们就需要把public
修改为存放我们压缩后的目录。
每个应用可有多个静态目录。也就是这个函数可以多次调用,设置不同的目录。
参考:http://expressjs.com/en/4x/api.html#app.set
用于设置一个值。
示例1:设置views文件夹的路径
app.set('views', path.join(__dirname, 'views'));
示例2:设置view的模版引擎名称
app.set('view engine', 'ejs');
示例3:设置环境(开发环境-development,生产环境-production)
app.set('env', 'development');
参考:http://expressjs.com/en/4x/api.html#app.get
获得指定的key
得到指。
参考:http://expressjs.com/en/4x/api.html#app.use
path
可有可无,它通常成为挂载点。
这个函数是使用频率最高的,因为它使用起来非常灵活,它内部会根据传入的参数个数、参数类型进行判断,到底用作什么用途。
使用express
命令创建的Web App
项目中的app.js
文件中有大量的使用示例。
参考:http://expressjs.com/en/4x/api.html#app.METHOD
path
必须指定。
express
默认提供了HTTP
的所有请求方式的方法,把METHOD
换成对用方式的小写就可以了。
方法 | 说明 |
---|---|
app.get(path, handler...); | HTTP 的GET 请求处理 |
app.post(path, handler...); | HTTP 的POST 请求处理 |
app.put(path, handler...); | HTTP 的PUT 请求处理 |
app.delete(path, handler...); | HTTP 的DELETE 请求处理 |
app.all(path, handler...); | HTTP 的所有请求方式的处理。不管是哪种类型的请求,这通常用做拦截器,做一些全局的处理。 |