gpt4 book ai didi

javascript - 当我尝试保存在 MongoDB 中时,.then 未定义

转载 作者:太空宇宙 更新时间:2023-11-04 02:45:24 24 4
gpt4 key购买 nike

我是 Node.js 新手。我收到这条消息:

TypeError: Cannot read property 'then' of undefined

代码如下:

router.post("/signup", (req, res) => {
const userRegister = new UserRegister({
_id: new mongoose.Types.ObjectId(),
nickname: req.body.nickname,
email: req.body.password,
password: req.body.password,
level: 0
});
console.log(req.body.nickname + " " + req.body.email + " " + req.body.password);
userRegister
.save()
.then(doc => {
console.log(doc);
res.status(200).json({
message: "User created"
});
})
.catch(err => {
if (err)
console.log("error => " + err)
res.status(409).json({
message: "ERROR"
})
});
});

和架构:

const mongoose = require("mongoose");

const userRegister = mongoose.Schema({
_id : mongoose.Schema.Types.ObjectId,
nickname: String,
email: String,
password: String,
level: Number
});

module.exports = mongoose.model("UserRegister", userRegister);

我真的不明白为什么它说“.then undefined”。( body 很好)

最佳答案

函数“save”似乎没有返回 Promise。但在源代码中它确实... https://github.com/Automattic/mongoose/blob/master/lib/model.js#L385

您也可以尝试“创建”方法。
https://github.com/Automattic/mongoose/blob/master/lib/model.js#L2646

也许会很糟糕:

   const result = new SomeModel({...});

new Promise((resolve, reject) => {
// Save model
result.save(err => {
if (err) {
return reject(new Error(`Error with exam ersult save... ${err}`));
}
// Return saved model
return resolve(result);
})
.then(res => {
return res;
})
.catch(err => {
throw new Error(err);
});

关于javascript - 当我尝试保存在 MongoDB 中时,.then 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53854340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com