美文网首页
(四)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