Express是基于 Node.js 平台,快速、开放、极简的 web 开发框架
Express
的作用和 Node.js内置的 http
模块类似,是专门用来创建Web服务器的。本质上就是一个 npm 上的第三方包,提供了快速创建Web服务器的便捷方法。
使用Express可以方便、快捷的创建Web网站的服务器或API接口的服务器。
中文官网:https://www.expressjs.com.cn/
在项目所处的目录中,运行如下的终端命令,即可将express安装到项目中使用
npm i express@4.17.1
// 1. 导入express
const express = require('express')
// 2. 创建web服务器
const app = express()
// 3. 启动web服务器
app.listen(80,function() {
console.log('express server running at http://127.0.0.1');
})
app.get('/user',(req,res) => {
// 响应一个JSON对象
res.send({name:'zs',gender:'男'})
})
app.post('/user',(req,res) => {
// 响应一个文本字符串
res.send('请求成功')
})
通过
req.query
对象,可以访问到客户端通过查询字符串
的形式发送到服务器的参数
app.get('/',(req,res) => {
// req.query 默认是一个空对象
console.log(req.query)
res.send(req.query)
})
如访问http://127.0.0.1?name=zs&age=18
,则req.query获取的值为{name:'zs',age:'18'}
通过
req.params
对象,可以访问到URL中通过:
匹配到的动态参数
app.get('/user/:id',(req,res) => {
// req.params默认是一个空对象
console.log(req.params);
res.send(req.params)
})
如访问http://127.0.0.1/user/001
,则req.params获取的值为{id: '001'}
通过
express.static()
可以非常方便地创建一个静态资源服务器
注意:
Express在指定的静态目录中查找文件,并对外提供资源的访问路径,因此存放静态文件的目录名不会出现在URL中。
app.use(express.static('./public'))
如 public
文件夹中有 index.html
、index.js
、index.css
文件
现在就可以访问 public 目录中的所有文件了:
http://127.0.0.1/index.html
http://127.0.0.1/index.js
http://127.0.0.1/index.css
如果要托管多个静态资源目录,多次调用
express.static()
即可
访问静态资源文件时,express.static() 函数会根据目录的添加顺序查找所需的文件。
app.use(express.static('./public'))
app.use(express.static('./files'))
如 files
和 public
文件夹中都有有 index.html
、index.js
、index.css
文件,通过http://127.0.0.1/index.html
进行访问,访问到的是先托管的文件夹中的文件(如上是public文件夹中的)。
如果希望在托管的静态资源访问路径之前挂载路径前缀,则可以使用如下方式:
app.use('/public',express.static('./public'))
http://127.0.0.1/public/index.html
http://127.0.0.1/public/index.js
http://127.0.0.1/public/index.css
在编写和调试Node.js项目的时候,如果修改了项目的代码,则需要频繁的手动close然后再重新启动,非常繁琐。
nodemon
工具能够监听项目文件的变动,当代码被修改后,会自动重启项目,极大方便了开发和调试。
npm i nodemon -g
nodemon app.js