【发布时间】:2021-05-29 21:26:54
【问题描述】:
我正在尝试学习 MongoDB 和 typescript,但目前在尝试创建我的第一个文档时遇到了一些问题。
当我从邮递员发出 post 请求时,我收到“Sending request” 5 秒,然后它超时并返回一个空的错误对象:
{
"message": {}
}
并且发布的数据没有保存在我的 mongoDB 中。
我首先在我的服务器中设置这样的连接:
mongoose.connect(<string> process.env.DB_CONNECTION, { useNewUrlParser: true}, () =>
console.log("connected to DB!")
);
并取回记录的正确语句,因此我已连接。
我有一个看起来像这样的模型:
import { model, Schema, Model, Document } from "mongoose";
export interface IUser extends Document {
name: string,
}
const UserSchema: Schema = new Schema(
{
name: {
type: Schema.Types.String,
required: true,
},
},
<any> {timeStamps: true}
);
const User: Model<IUser> = model<IUser>('User', UserSchema);
export default User;
问题可能就在那里,但我认为不是。
然后,这是我对我调用的端点的发布请求:
router.post('/add', async (req: Request, res: Response): Promise<any> => {
try {
const user: IUser = new User({
name: req.body.name
});
const savedUser: IUser = await user.save();
res.status(200).json(savedUser);
} catch (err: any) {
res.status(500).json({message: err});
console.log("There was an error");
}
})
这是我认为每次请求都停留在等待 .save() 时出现错误的地方
任何帮助都会很棒!谢谢!
【问题讨论】:
-
您正在等待
name.save(),但模型的变量名为game -
@MontgomeryWatts 我的错误。我正在等待 user.save(),但我在写问题时写错了变量。我编辑了代码以修复此更改。
-
您能否确认您已正确连接到 MongoDB? mongoose.connect 函数可以进行回调,您可以在其中检查是否发生错误。
-
你说得对,连接有问题。我相信我的密码引起了问题,因为其中有特殊字符并且我没有对它们进行编码。非常感谢你的帮助。输入一个答案,我会改正的。
标签: node.js mongodb typescript mongoose