Mongoose MVC - TypeError: ItemModel не является конструктором - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь следовать шаблону MVC, определяя / экспортируя модель и используя эту модель в контроллере.Однако я получаю сообщение об ошибке: TypeError: ItemModel не является конструктором.

Я следовал нескольким другим примерам и не могу понять, почему происходит эта ошибка.

Структура файлавыглядит следующим образом:

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)

1 Ответ

0 голосов
/ 11 февраля 2019

Я думаю, что отсутствует буква.

Item.js

module.export = ItemModel

изменить

module.exports = ItemModel
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...