node.js - 如何摆脱错误 : "OverwriteModelError: Cannot overwrite ` undefined` model once compiled. “?

标签 node.js mongodb mongoose

我有一个通用的方法来更新 MongoDB 中任何集合的文档吗?

以下代码在文件名Deleter.js

module.exports.MongooseDelete = function (schemaObj, ModelObject);
{
  var ModelObj = new mongoose.Model("collectionName",schemaObj);
  ModelObj.remove(ModelObject);
}

并在我的主文件 app.js 中调用如下:

var ModObj = mongoose.model("schemaName", schemasObj);
var Model_instance = new ModObj();
var deleter = require('Deleter.js');
deleter.MongooseDelete(schemasObj,Model_instance);

我收到以下错误:

OverwriteModelError: Cannot overwrite `undefined` model once compiled.
    at Mongoose.model (D:\Projects\MyPrjct\node_modules\mongoose\lib\index.js:4:13)

我只获得第二个方法调用.. 如果有人有解决方案,请告诉我。

最佳答案

我设法解决了这样的问题:

var Admin;

if (mongoose.models.Admin) {
  Admin = mongoose.model('Admin');
} else {
  Admin = mongoose.model('Admin', adminSchema);
}

module.exports = Admin;

关于node.js - 如何摆脱错误 : "OverwriteModelError: Cannot overwrite ` undefined` model once compiled. “?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14641834/

相关文章:

node.js - 通过批处理脚本获取 Node 版本

node.js - 将 Selenium 的 findElements 中的 Promise 数组转换为对象数组

javascript - 在 Node.JS 中禁用日志记录

mysql - 哪个最适合我的需求 : MongoDB, CouchDB 或 MySQL。相关定义的标准

linux - 聚合数十亿条记录时如何修复打开文件过多错误

typescript - Mongoose 的 loadClass() 和 TypeScript

node.js - AWS lambda 基本身份验证,无需自定义授权者

node.js - 如何在 MongoDb 连接失败的情况下向前端发送消息

node.js - FindOneAndUpdate 不更新带有传入参数的嵌套字段

node.js - 多个 Mongoose 预存中间件