【问题标题】:Error while trying to save object to MongoDB using mongoose尝试使用 mongoose 将对象保存到 MongoDB 时出错
【发布时间】:2020-09-01 05:07:15
【问题描述】:

所以我正在尝试使用 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

【问题讨论】:

    标签: node.js express mongoose mongoose-schema


    【解决方案1】:

    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");
    });
    

    Mongoose model documentation

    【讨论】:

      【解决方案2】:

      OB 不是函数 你可以试试这个。

      const ob =new OB(data to be saved);
      
      try{
      await ob.save();
      }
      catch(e){
      console.log(e)
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-26
        • 1970-01-01
        • 2020-01-19
        • 2020-10-17
        • 2019-05-08
        • 2022-10-13
        • 2021-01-03
        • 1970-01-01
        相关资源
        最近更新 更多