javascript - Mongoose MVC - TypeError:ItemModel 不是构造函数
问题描述
我试图通过定义/导出模型并在控制器中使用此模型来遵循 MVC 模式。但是,我收到一个错误:TypeError: ItemModel is not a constructor。
我已经遵循了其他几个示例,但无法理解为什么会发生此错误。
文件结构如下:
src\db_test.js
src\controller\Item.js
src\models\Item.js
const mongoose = require('mongoose');
const ItemSchema = new mongoose.Schema({
"name": String
});
var ItemModel = mongoose.model('Item', ItemSchema);
module.export = ItemModel;
控制器\Item.js
var ItemModel = require('../models/Item');
var itemController = {};
itemController.save = function(obj) {
var model = new ItemModel(obj); // Error here
model.save(function(err, item) {
if (err) {
console.log('Failed to save');
return;
}
console.log('saved successfully!');
});
}
module.exports = itemController;
db_test.js
const ItemController = require('./controller/Item');
var testItem = {
"name": "ItemName"
};
ItemController.save(testItem);
输出:
\src\controller\Item.js:18
var model = new ItemModel(obj); // Error here
^
TypeError: ItemModel is not a constructor
at Object.itemController.save (\src\controller\Item.js:5:4)
at Object.<anonymous> (\src\db_test.js:7:6)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
解决方案
我想有一封信不见了。
项目.js
module.export = ItemModel
改变
module.exports = ItemModel
推荐阅读
- gradle - Gradle:使用依赖 jar 中的资源作为源集
- c# - 从 XML 生成的 dataset-parent-child-tables C# 更新 SQL Server -with-autogenerated-identity-key
- r - 将多个弹出窗口添加到单个标记位置坐标
- hadoop - hortonworks 沙盒配置单元元存储不起作用
- regex - 用于排除之间的正则表达式
- vb.net - 不使用其他百分比值的公式 (CRYSTALREPORT)
- javascript - 使用议程找到特定的工作
- android - 另一个里面的 setOnClickListener 不起作用
- mac-app-store - 在 macOS Mojave 上的 Mac App Store 中打开开发者页面
- docker - 将多个容器放入一个 pod 有什么好处?