美文网首页
(四)Node接口搭建——搭建注册接口并存储数据

(四)Node接口搭建——搭建注册接口并存储数据

作者: 彼得朱 | 来源:发表于2019-07-08 15:34 被阅读0次

本节有两个内容:

  • 本地测试接口的工具
  • 搭建注册(register)接口

1、本地测试接口的工具—postman

官网:https://www.getpostman.com/

建议用这个:https://www.getpostman.com/apps 不再依赖于Chrome浏览器了

然后一步一步安装就好,安装完成之后可以测试一下我们之前写的接口,也可以测试别人的接口


postman测试

2、搭建注册(register)接口

注意:body-parserExpress 一个常用中间件,作用是对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));
                    });
                });
            }
        })

})
  • 测试接口
测试
测试

相关文章

网友评论

      本文标题:(四)Node接口搭建——搭建注册接口并存储数据

      本文链接:https://www.haomeiwen.com/subject/yltahctx.html