用Express搭建服务器
之前一直是用axios请求rap2模拟的接口,想试着用express自己写一个简单的,然后连下MySQL数据库。
0、准备工作
- 安装node
- 初始化项目:新建一个文件夹,在里面
npm init -y
- 安装express
npm install express
- 新建
www.js 文件,把这段代码写进去,然后直接node www.js 启动服务,然后在浏览器访问http://localhost:3000 就可以看到后端返回的Hello World! 啦。
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`) })
2、前端axios.get请求
3、前端axios.get请求的跨域问题
- 第2节介绍了如何用axios请求后台服务,但是在本地访问上面的
http://localhost:3000 ,如果不是同一端口的话会出现跨域不能请求的问题。解决方法是在www.js 文件中加上下面这段:
app.use(function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
next(); });
- 这样你就可以在本地其他端口的项目上访问3000端口啦
4、后端post接口
app.post('/post', (req, res) => {
console.log(JSON.stringify(req.body));
res.send('ok');
});
5、前端axios.post请求
axios.post(`http://localhost:3000/post`, "向后端发送的数据").then(res => {
console.log("后端返回的数据res=>", res);
});
- 这样你在前端就可以向后端发送请求信息,后端接收并验证之后再把数据返回给前端就好了。
- 但是,这样还是会有点问题,
第6节 解决。
-
express没有内置的POST请求API,但是有听说将body-parser(详情) 内置到express中了。但是我试了直接使用不了。所以还是直接安装第三方包 -
使用第三方包body-parser npm i body-parser
-
app.js
const bodyParser=require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
- 至此使用express搭建的简易服务器就好了,后续可以再连接数据库进行增删查改。
转载整合自(文中链接) 参考链接: Express 中文网 在express中获取post请求数据(原文链接) body-parser(详情)
|