Express 是一个简洁而灵活的 node.js Web应用框架.
提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。
使用 Express 可以快速地搭建一个完整功能的网站。
Express 框架核心特性:
-
可以设置中间件来响应 HTTP 请求。
-
定义了路由表用于执行不同的 HTTP 请求动作。
-
可以通过向模板传递参数来动态渲染 HTML 页面。
官网下载安装npm,node
npm install express --save
npm install -g webpack
npm install -g yarn
mkdir express-hello-world
cd express-hello-world
yarn inist -y
yarn add express

VScode打开文件夹
// 引入express
const express = require("express");
//创建express的实例
const app = express();
//设置监听端口
const port = 3000
app.listen(port,()=>{
console.log('express server listening at http://localhost:${port}');
});
在终端中输入node app.js启动服务

启动后还无法打开.还需要url
// 引入express
const express = require("express");
//创建express的实例
const app = express();
//大部分应用使用json格式,为了让express能够解析json格式的请求体,
//添加express.json中间件到app中,中间件自定义的比如log,扩展express功能
//请求前响应前做特定的
app.use(express.json());
app.get("/",(req,res)=>{
res.send("Hello World");
});
app.post("/",(req,res)=>{
console.log("收到请求体:",req.body);
res.status(201).send();
});
//设置监听端口
const port = 3000
app.listen(port,()=>{
console.log('express server listening at http://localhost:${port}');
});
使用postman来测试

收到请求,返回了201状态码

put是用来更新服务器上资源的.要知道存在资源的唯一标识,一般是数据库中的id,put发出请求时,在url中提供标识参数.然后在express中解析出来.根据它去更新服务器上的资源.
这是使用app中的put方法来创建put请求.
// 引入express
const express = require("express");
//创建express的实例
const app = express();
//大部分应用使用json格式,为了让express能够解析json格式的请求体,
//添加express.json中间件到app中,中间件自定义的比如log,扩展express功能
//请求前响应前做特定的
app.use(express.json());
app.get("/",(req,res)=>{
res.send("Hello World");
});
app.post("/",(req,res)=>{
console.log("收到请求体:",req.body);
res.status(201).send();
});
//根跟径后面的值都会做为请求的参数,并且赋给名为id的变量.
app.put("/:id",(req,res)=>{
console.log("收到请求的参数,id为: ",req.params.id);
console.log("收到请求体:",req.body);
res.send();
});
//设置监听端口
const port = 3000
app.listen(port,()=>{
console.log('express server listening at http://localhost:${port}');
});
postman来试试看


delete 用于删除服务器上的资源和put一样它也需要 标识.使用app.delete方法,反回204状态码.
// 引入express
const express = require("express");
//创建express的实例
const app = express();
//大部分应用使用json格式,为了让express能够解析json格式的请求体,
//添加express.json中间件到app中,中间件自定义的比如log,扩展express功能
//请求前响应前做特定的
app.use(express.json());
app.get("/",(req,res)=>{
res.send("Hello World");
});
app.post("/",(req,res)=>{
console.log("收到请求体:",req.body);
res.status(201).send();
});
//根跟径后面的值都会做为请求的参数,并且赋给名为id的变量.
app.put("/:id",(req,res)=>{
console.log("收到请求的参数,id为: ",req.params.id);
console.log("收到请求体:",req.body);
res.send();
});
app.delete("/:id",(req,res)=>{
console.log("收到请求参数,id为: ",req.params.id);
res.status(204).send();
});
//设置监听端口
const port = 3000
app.listen(port,()=>{
console.log('express server listening at http://localhost:${port}');
});


对于一个json的express项目,一般会有多组api,比如文章,产品,订单等,然后分布在子路由中处理.
在项目根目录下创建一个routes文件夹,子目录下创建post.js

在post.js 中导入express实例.
post.js代码如下:
//导入实例
const express = require("express");
//创建叫route的实例,处理子路由
var route = express.Router();
route.get("/",(req,res)=>{
res.send({id:1,title:"express入门教程"}); //get请求中返回实例数据
});
route.post("/",(req,res)=>{
console.log("保存文章:",req.body);
res.status(201).send({id:2,...req.body});
});
//根跟径后面的值都会做为请求的参数,并且赋给名为id的变量.
route.put("/:id",(req,res)=>{
console.log("收到请求的参数,文章id为: ",req.params.id);
console.log("收到请求体,新的文章内容是:",req.body);
res.send({id:req.params.id, ...req.body});
});
route.delete("/:id",(req,res)=>{
console.log("收到请求参数,id为: ",req.params.id);
res.status(204).send();
});
module.exports = route;

因为项目中可能包含多个子路由,为了不让app.js文件过于庞大,我们在routses下新建一个index.js用于统一处理路由.
//引入子路由,导出一个函数,接收app对象挂载子路由.
const post = require("./post");
module.exports = app =>{
app.use("/post",post);
};
最终的app.js代码如下:
// 引入express
const express = require("express");
const port = 3000//设置监听端口
const app = express();//创建express的实例
const routes = require("./routes")//引入routes文件夹
//大部分应用使用json格式,为了让express能够解析json格式的请求体,
//添加express.json中间件到app中,中间件自定义的比如log,扩展express功能
//请求前响应前做特定的
app.use("/post",post);
app.use(express.json());
routes(app);//调用函数
app.get("/",(req,res)=>{
res.send("Hello World");
});
app.post("/",(req,res)=>{
console.log("收到请求体:",req.body);
res.status(201).send();
});
//根跟径后面的值都会做为请求的参数,并且赋给名为id的变量.
app.put("/:id",(req,res)=>{
console.log("收到请求的参数,id为: ",req.params.id);
console.log("收到请求体:",req.body);
res.send();
});
app.delete("/:id",(req,res)=>{
console.log("收到请求参数,id为: ",req.params.id);
res.status(204).send();
});
app.listen(port,()=>{
console.log('express server listening at http://localhost:${port}');
});
有点乱,空了整理下