首页 > 解决方案 > “电子邮件”的属性未定义

问题描述

我正在关注 Academind 的 RESTful API 系列,并且添加了用户注册,但是在邮递员以 json 的原始格式传递以下 json 数据时出现无法读取未定义的属性“电子邮件”的错误,邮递员的所有内容都配置为学术界视频。

{
    "email" : "test@test.com",
    "password" : "tester"
}

我的 routes/users.js 看起来像这样:

const express = require('express');
const router = express.Router();
const mongoose = require("mongoose");
const bcrypt = require("bcrypt");

const User = require("../models/user");

router.post('/signup', (res, req, next) => { 
    // console.log(req.body.email);
    User.find({ email: req.body.email })
    .exec()
    .then(user => {
        if ( user.length >= 1 ) {
            return res.status(409).json({
                message: 'Email already in use by some other user'
            });
        } else {
            bcrypt.hash(req.body.password, 10, (err, hash) => {
                if (err) {
                    return res.status(500).json({
                        error: err,
                    });
                } else {
                    // console.log(req.body.email);
                    const user = new User({
                        _id: new mongoose.Types.ObjectId(),
                        email: req.body.email,
                        password: hash,
                    });
                    user
                    .save()
                    .then(result => {
                        console.log(result);
                        res.status(201).json({
                            message: "User Created Successfully",
                        });
                    })
                    .catch(err => {
                        console.log(err);
                        res.status(500).json({
                            error: err
                        });
                    });
                }
            });
        }
    });
});

module.exports = router;

标签: javascriptnode.jshttprequestnodesbackend

解决方案


在这条线上:

router.post('/signup', (res, req, next) => { 

箭头函数内的参数应该是这样的 (req, res, next)=> 即“req”在参数中位于“res”之前。像这样:router.post('/signup', (req, res, next) => {


推荐阅读