Я работаю с nodejs, и я создал модель регистрации для пользователя, но после запуска в почтальоне, нет ответа или сбоя. Я просто застрял там и получил следующий ответ в моем терминале
UnhandledPromiseRejectionWarning: необработанное отклонение обещания. это
ошибка возникла либо при броске внутри асинхронной функции
без блокировки, или отклонив обещание, которое не было обработано
с .catch (). (идентификатор отклонения: 1) (узел: 12675) [DEP0018]
DeprecationWarning: Отклонения необработанных обещаний устарели. В
будущее, обещания отклонения, которые не обрабатываются, прекратят
Процесс Node.js с ненулевым кодом выхода
ниже код моей модели
const AccountSchema = new mongoose.Schema(
{
fullName: {
type: String,
require: true,
minlength: 2
},
email: {
type: String,
required: true,
trim: true,
minlength: 1,
unique: true,
validate: {
validator: validator.isEmail,
message: '{VALUE} is not a valid email'
}
},
password: {
type: String,
require: true,
minlength: 6
},
token: {
type: String,
required: true
},
timestamp: {
type: Date,
default: Date.now
}
}
);
AccountSchema.methods.toJSON = function () {
const user = this
const userObject = user.toObject()
return _.pick(userObject, ['_id','fullName', 'email', 'token'])
}
AccountSchema.methods.generateAuthToken = function () {
let user = this
const today = new Date();
const expirationDate = new Date(today);
expirationDate.setDate(today.getDate() + 60);
const token = jwt.sign({
email: user.email,
_id: user._id.toHexString(),
exp: parseInt(expirationDate.getTime() / 1000, 10),
}, 'process.env.JWT_SECRET').toString()
user.token.push({
token
})
return user.save().then(() => {
return token
})
}
AccountSchema.pre('save', function (next) {
let user = this
if (user.isModified('password')) {
bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(user.password, salt, (err, hash) => {
user.password = hash
next()
})
})
} else {
next()
}
})
const Account = mongoose.model('Account', AccountSchema)
в моем контроллере, у меня есть это
1012 * минусы *
t _ = require('lodash')
const {Account} = require('../models/account')
exports.register = (req, res, next) => {
const body = _.pick(req.body, ['fullName', 'email', 'password'])
console.log(body)
const account = new Account(body)
account.save().then(() => {
return account.generateAuthToken()
}).then((token) => {
res.header('Authorization', token).send(account)
}).catch((e) => {
res.status(400).send(err)
})
}
тогда мой почтальон такой
{
"fullName": "Adie Olami",
"email": "ugbe@gmail",
"password": "123456"
}
позвольте мне также добавить, я новичок в узле и все еще учусь, поэтому любая помощь приветствуется