(四)Node接口搭建——搭建注册接口并存储数据
本节有两个内容:
- 本地测试接口的工具
- 搭建注册(register)接口
1、本地测试接口的工具—postman
官网:https://www.getpostman.com/
建议用这个:https://www.getpostman.com/apps 不再依赖于Chrome浏览器了
然后一步一步安装就好,安装完成之后可以测试一下我们之前写的接口,也可以测试别人的接口
postman测试
2、搭建注册(register)接口
注意:body-parser是Express 一个常用中间件,作用是对post请求的请求体进行解析。使用非常简单,以下两行代码已经覆盖了大部分的使用场景。
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
bodyParser.urlencoded 用来解析 request 中 body的 urlencoded字符, 只支持utf-8的编码的字符,也支持自动的解析gzip和 zlib。返回的对象是一个键值对,当extended为false的时候,键值对中的值就为'String'或'Array'形式,为true的时候,则可为任何数据类型。
Bcrypt:bcrypt是一种跨平台的文件加密工具,比较方便地实现数据的加密工作。
步骤:
- 安装body-parser(Post需要解析,所以搭建注册接口之前得先安装)
npm install body-parser
- sever.js引入
const bodyParser = require("body-parser");
- 在server.js里添加使用body-parser中间件(server.js里面)
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());
- routes/api/users.js里面添加注册接口
// $route POST api/users/register
// @desc 返回的请求json数据
// @access public
router.post("/register",(req,res)=>{
console.log(req.body);
})
- 测试接口(用Postman)
终端输出
说明接口成功。
- 安装加密的bcrypt
npm install bcrypt
- 引入加密工具
const bcrypt = require("bcrypt"); //引入加密
- routes/api/users.js中引入数据模型models中的User.js
const User = require("../../models/User");
- 注册的post接口
router.post("/register", (req, res) => {
// console.log(req.body);
// 查询数据库中是否拥有邮箱
User.findOne({
email: req.body.email
})
.then((user) => {
if (user) {
return res.status(400).json({
email: "邮箱已被占用"
})
} else {
const newUser = new User({
name: req.body.name,
email: req.body.email,
password: req.body.password
})
//密码加密 需npm install bcrypt
bcrypt.genSalt(10, function (err, salt) {
bcrypt.hash(newUser.password, salt, function (err, hash) {
//store hash in your password DB.
if (err) {
throw err;
}
newUser.password = hash;
newUser.save()
.then(user => res.json(user))
.catch(err => console.log(err));
});
});
}
})
})
- 测试接口
测试