Я разрабатываю приложение node.js с помощью express и mongoDb и mongoose. Приложение сохраняет пользователя в коде ниже, без проблем, но в этом коде он всегда вызывает ошибку, даже если процесс является успешным, и пользователь сохраняется.
Я пытаюсь сделать флеш-сообщения и проверки, но я не могу решить эту проблему.
Кроме того, я не уверен, использую ли я правильный метод сообщения или нет (должен ли я использовать res.status(500).send('error')) внутри сообщения?
newUser.save().then(function (error) {
if (error) {
console.log('error') // always prints this
} else {
console.log('success')
}
})
полный код
var User = require('../models/User')
var router = require('express').Router()
router.route('/user/signup')
.get(function (request, response) {
// render the form
response.render('user/signup')
})
.post(function (request, response) {
var username = request.body.name
var password = request.body.password
var newUser = new User({
name: username,
password: password
})
newUser.save().then(function (error) {
if (error) {
console.log('error')
} else {
console.log('success')
}
})
response.redirect('/')
})
Я думаю, вы хотите передать функцию непосредственно для сохранения() в качестве обратного вызова
newUser.save(function (err, user) {
if (err) ..
})
С помощью подхода, который вы сейчас используете, я думаю, вы захотите использовать catch
newUser.save().then(function (user) }})
.catch((err) => ...);