目录
1. express简介
1.1 express的概念
1.2 express的作用
2. express的使用
2.1 使用express创建Web服务器
2.2 监听GET/POST请求
2.3 获取URL的请求参数
3. 托管静态资源
3.1 express.static
3.2 托管多个静态资源
3.3 挂载路径前缀
4. nodemon
1. express简介
1.1 express的概念
express是基于Node.js平台的快速,极简Web开发框架。express的作用类似于Node.js中的http模块,用于创建Web服务器的。
express的官网:https://www.express.com/cn
1.2 express的作用
常见的两种服务器,分别是:
Web网站服务器:专门对外提供Web网页资源的服务器。
API接口服务器:专门对外提供API接口的服务器。
使用Express,可以方便、快速地创建Web网站服务器或API接口服务器。
2. express的使用
2.1 使用express创建Web服务器
// 导入express包
const express = require('express');
// 创建express服务器
const app = express();
// 启动服务器 监听80端口,并有个回调函数
app.listen('80',() => {
console.log('express Web server is running at 127.0.0.1');
})
报错原因:没有安装express模块
解决:npm install express
成功启动服务器:
2.2 监听GET/POST请求
1. 通过app.get()方法,可以监听客户端的GET请求:
// 参数1: 客户端请求的URL地址
// 参数2: 请求对应的处理函数
// req: 请求对象
// res: 响应对象
app.get('请求URL', function(req, res) { /*处理函数*/ })
2. 通过app.post()方法,可以监听客户端的POST请求:
app.post('请求URL', function(req, res) { /*处理函数*/ })
3. 示例:
// 导入express包
const express = require('express');
// 创建express服务器
const app = express();
// // 启动服务器
app.listen('80',() => {
console.log('express Web server is running at 127.0.0.1');
})
app.get('/user', (req, res) => {
const jsonObj = {
name: 'sun',
age: '18',
gender: 'women'
}
res.send(jsonObj); // 响应客户端JSON数据
})
app.post('/user', (req, res) => {
res.send('请求成功') // 响应客户端文本数据
})
可以下载postman或者Apipost软件来模拟GET/POST请求的发送:
2.3 获取URL的请求参数
1. 获取静态参数
通过req.query对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数:
// 模拟请求127.0.0.1?name=sun&age=20,URL附带参数、打印参数并响应参数
app.get('/', (req, res) =>{
console.log(req.query);
res.send(req.query);
})
2. 获取动态参数
app.get('/user/:id', (req,res) => {
console.log(req.params); // 可以获取动态参数
res.send(req.params); //响应动态参数id
})
3. 托管静态资源
3.1 express.static
express提供了一个非常好用的函数,叫做express.static(),通过它,我们可以非常方便地创建一个静态资源服务器,例如,通过如下代码就可以将public目录下的图片,CSS文件,JS文件对外开放访问了:
app.use(express.static('public'))
设置后,可以访问public目录的所有文件了:
http://localhost/images/bg.jpg
http://localhost/css/style.css
http://localhost/js/login.js
...
注意:Express在指定的静态目录中查找文件,并对外提供资源访问路径,因此,存放静态文件的目录名不会出现在URL中
3.2 托管多个静态资源
如果要托管多个静态资源目录,可以多次调用express.static()函数:
app.use(express.static('public'));
app.use(express.static('file'));
访问静态资源文件时,express.static()函数会根据目录的添加顺序查找所需的文件。
3.3 挂载路径前缀
如果希望在托管的静态资源访问路径之前,挂载路径前缀,则可以使用如下方式:
app.use('/public', express..static('public'))
这样就可以在访问路径出现需要的路径前缀了:
4. nodemon
在编写调试Node.js项目时,如果修改了代码,需要频繁关闭服务,再重新启动,很麻烦。所以可以使用nodemon这个工具,可以监听项目的变动,如果代码被修改了,nodemon会自动帮我们重启项目,方面开发和调试。
安装nodemon:
npm install nodemon -g
安装nodemon后,我们运行项目的命令需要从node变为nodemon:
node test.js
// 安装nodemon后、替换为如下命令
nodemon test.js
这样nodemon可以监听test.js文件的改动,从而不需要我们手动关闭重启服务。nodemon会自动重启。