【发布时间】:2017-07-17 11:55:43
【问题描述】:
我基本上是在尝试使用 MEAN 创建一个注册页面,如果用户和电子邮件已经存在,我想检查数据库(使用 Mongoose 的 Mongo),如果其中一个为真,则发送 res.json 失败。
如果数据库中还没有用户名和邮箱,继续添加用户。
我收到一条错误消息“发送后无法设置标头。”在 Node 控制台上,我试图找出原因。
一旦 User.getUsername() 在回调中返回一个用户(如果传递的用户名存在于数据库中),它不应该返回 json 并在那里结束请求吗?为什么它继续使用 User.adduser() 函数并尝试在那里设置标头?
感谢您的帮助,谢谢。
router.post('/register', (req, res, next) =>{
let newUser = new User({ // Collect body info
name: req.body.name,
email: req.body.email,
username: req.body.username,
password: req.body.password
});
// Check if username is available
User.getUserByUsername(newUser.username, (err, user) => {
if(err) throw err;
if(user){
return res.json({success: false, msg: 'User already exists'});
// I want to end here if there's a user
}
});
//Continue to add user if getUserByUsername() returns false for user
// Add user
User.addUser(newUser, (err, user) => { // Add user
if(err){
return res.json({success: false, msg: 'Failed to register'});
} else {
return res.json({success: true, msg: 'You have been successfully registered!'});
}
});
});
【问题讨论】:
标签: json node.js mongodb angular mean-stack