express简单入坑
Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。
安装
1 | npm init |
创建第一个应用
1 | // app.js |
在命令行执行 node app.js 浏览器输入 http://localhost:8000/就可以访问了。
路由控制
app.get(path, (request, response) => {})
根据path处理客户端发过来的GET请求。
第一个参数:path请求的路径。
第二个参数:回调函数,request(请求),response(响应)
1 | app.get('/',(req,res) => { |
app.post(path, (request, response) => {})
根据path处理客户端发过来的POST请求。
参数和app.get()方法一样。
1 | app.post('/', (req, res) => { |
app.all(path, (request, response) => {})
根据path处理客户端发过来的所有http(GET,POST,PUT,DELETE,HEAD)请求。
参数和app.get()方法一样。
res.send() 发送各种类型的响应。
res.download() 提示下载文件。
res.redirect() 重定向请求。
res.sendStatus() 设置响应状态代码,并将其以字符串形式作为响应体的一部分发送。
静态文件
Express 内置的 express.static 可以方便地托管静态文件,例如图片、CSS、JavaScript 文件等。
只需要把文件目录作为参数传给express.static,之后就可以访问到静态文件。
1 | app.use(express.static('./public')) |
注: 所有文件的路径都是相对于存放目录的,因此,存放静态文件的目录名不会出现在 URL 中。
中间件
Express应用就是在调用各种中间件完成功能的,如cookie解析、文件上传、静态文件等。
中间件(Middleware) 是一个函数。它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 web 应用中处于请求-响应循环流程中的中间件,一般被命名为 next 的变量。
如果当前中间件没有终结请求-响应循环,则必须调用 next() 方法将控制权交给下一个中间件,否则请求就会挂起。
1 | app.use((req, res, next) => { |
可以看到next 的作用,把控制器交给下一个中间件。
可以利用中间件特性来处理登陆用户。
- 检查数据是否合法。
- 检查数据是否存在。
- 检查数据密码是否正确。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23app.get('/login', (req, res, next) => {
if(合法){
next()
}else{
res.send('用户名不合法')
}
})
app.get('/login', (req, res, next) => {
if(存在){
next()
}else{
res.send('用户名不存在')
}
})
app.get('/login', (req, res, next) => {
if(密码正确){
res.send('登陆成功')
}else{
res.send('密码不正确')
}
})
中间件的大概用法就是这样。
模板引擎
先安装ejs模板
npm install ejs -S
1 | app.set('view engine', 'ejs'); |
1 | // index.js |
1 | // index.ejs |
在命令行里执行node index.js,就可以看到模板了。