javascript - “电子邮件”的属性未定义
问题描述
我正在关注 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;
解决方案
在这条线上:
router.post('/signup', (res, req, next) => {
箭头函数内的参数应该是这样的 (req, res, next)=> 即“req”在参数中位于“res”之前。像这样:router.post('/signup', (req, res, next) => {
推荐阅读
- google-sheets - Google 电子表格“Countunique”返回 1 或 0
- html - 为什么 1px 在视网膜显示屏上看起来更大?
- ruby-on-rails - 在方法派生属性的 sum 函数中将 nil 视为零(Rails 4.2)
- c - 长双1.#QNAN
- android - 错误的视图绑定:与属性 android:visibility 不兼容
- android - Google Fit Android SDK - 获取用户活动列表以及时间和相关值
- javascript - 如何通过php中的ajax调用检查文件是否为空?
- selenium - 使用激活扩展自动执行 Selenium
- javascript - 普通数组到多维数组
- javascript - 尝试使用 w3.js 对表格进行排序,但无法正确排序数字