用法和Flask 很相似

文档:

英文:http://expressjs.com/

中文:https://www.expressjs.com.cn/

初始化项目

# 初始化
$ npm init

# 安装
cnpm install express nodemon -S

项目结构

server.js
package.json
node_modules/

简单示例

server.js

const express = require("express");

const app = express();

app.get("/", (request, response) => {
response.send("hello world!");
})

const port = process.env.PORT || 5000;

app.listen(port, () => {
console.log(`Server runing on http://127.0.0.1:${port}`);
})

运行

$ node server.js

http://127.0.0.1:5000/

配置热重载

配置package.json

{
"name": "demo",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1",
"nodemon": "^2.0.2"
}
}

热重载模式启动

$ npm run dev

数据交互

接收参数,返回json

/**
* body 默认是undefined,需要添加解析中间件
*/
// for parsing application/json
app.use(express.json())
// for parsing application/x-www-form-urlencoded
app.use(express.urlencoded({ extended: true }))


app.post("/json/:key", (request, response) =>{
const data = {
body: request.body,
params: request.params,
query: request.query
}
response.json({ msg: 'success', code: 0, data: data})
} )

请求测试

POST http://127.0.0.1:5000/json/value?name=Tom&age=23
Content-Type: application/json; charset=utf-8

{
"school": "Tsinghua"
}

反回数据

{
"msg": "success",
"code": 0,
"data": {
"body": {
"school": "Tsinghua"
},
"params": {
"key": "value"
},
"query": {
"name": "Tom",
"age": "23"
}
}
}