node.js - 尝试使用 mongoose 将对象保存到 MongoDB 时出错
问题描述
因此,我正在尝试使用 Mongoose node.js + express 在 MongoDB DBMS 上的 /api/register 上保存一个 POST 请求。
我的架构:
const mongoose = require('mongoose');
const obSchema = mongoose.Schema({
ID: {
type: Number,
required: true,
unique: true
},
description: {
type: String,
required: true
},
active: Boolean
});
module.exports = mongoose.model("OB", obSchema);
我的代码:
<express imports etc>
const OB = require('./models/ob.js');
app.post('/api/register', apiLimiter, async function (req, res){
try {
OB.save(function (err) {
if (err) return console.error(err);
console.log("Saved successfully");
});
} catch (err) {
res.status(500).send()
console.log(err);
}
});
我的错误:
TypeError: OB.save is not a function
解决方案
TypeError:OB.save 不是函数
因为您在原始 Mongoose 模型上操作,而不是模型的实例。
该save
函数属于 Mongoose 模型的实例,为了在 Mongo 中保存文档,您必须首先实例化模型:
const myOb = new OB({ ID: 1234, description: 'qwerty', active: true });
myOb.save((err) => {
if (err) return console.error(err);
console.log("Saved successfully");
});
推荐阅读
- javascript - 如何在 JSON 的左侧制作上类?
- ios - 单例变量不更新
- sql - 在 postgresql 中为表达式重用别名
- selenium - 从 Web 表中提取数据
- javascript - 将键分配给数组对象
- javascript - 如何申请.toFixed(2)
- matlab - 调试代码,不知道为什么我没有得到正确的 x1 值
- ember.js - .NET Core 3.1 CORS 不适用于 Ember (3.12) Web UI
- python - 覆盖 Django 模型 __init__ 方法
- python - flask_mail 我得到两个不同的 FROM 行邮件标题