Javascript 财产';电子邮件';未定义

Javascript 财产';电子邮件';未定义,javascript,node.js,httprequest,nodes,backend,Javascript,Node.js,Httprequest,Nodes,Backend,我正在关注Academind的RESTful API系列,并且我已经添加了用户注册,但是我遇到了错误,无法读取未定义的属性“email”当邮递员以json的原始格式传递以下json数据时,邮递员的所有配置都与Academind视频中的一样 { "email" : "test@test.com", "password" : "tester" } 我的routes/users.js如下所示: const

我正在关注Academind的RESTful API系列,并且我已经添加了用户注册,但是我遇到了错误,无法读取未定义的属性“email”当邮递员以json的原始格式传递以下json数据时,邮递员的所有配置都与Academind视频中的一样

{
    "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;
在这一行:

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

请在调试器(例如Chrome开发工具)下逐步完成此操作,并找出您希望具有“email”属性的对象是未定义的(或“null”)。我猜问题可能是你没有得到
req.body
。请更新你的帖子。为什么在评论的控制台日志下有req.user.email?应该是req.body.email吗?@palsm4抱歉,兄弟,我用了req.body一次,只是用了req.user来确定这是否是问题,但后来忘了将其改回我再次发布了req.body,就像我在使用req.user一样,这是不正确的。简单地说req.body并不能解决错误。我编辑了我的问题,将req.user改为req.body问:你在使用调试器吗?关于“console.log”的评论(我在你的帖子中没有看到:如果我错过了,请原谅)暗示“是”.调试器很好。请确认您正在使用调试器。问:在调试器中-您能识别出哪个对象是“未定义的”吗?这是您的目标。如果您识别出“未定义的对象”-您就解决了问题:)您好,很酷您找到了答案。但是最好从问题中删除带有实际解决方案的第二次编辑,而是添加带有解决方案的答案。您以后甚至可以接受自己的答案。这样,其他人就可以清楚地知道问题和解决方案是什么。