Есть много похожих вопросов, я знаю, однако мое дело несколько отличается, и я попытался подходы, описанные в этих ответах, но все еще не работал. Я знаю, мне что-то не хватает, но я не могу понять, что.Как экспортировать файл с узлом
У меня есть эта структура:
корень - модели - categories.js - ... - маршруты - main.js - ... app.js ...
Так что в моих категориях у меня есть следующие функции/структура:
/*
* Initial variable setting
*/
var Db = require('mongodb').Db,
Connection = require('mongodb').Connection,
Server = require('mongodb').Server,
BSON = require('mongodb').BSON,
ObjectID = require('mongodb').ObjectID;
Categories = function(host, port) {
this.db = new Db('hoiepos', new Server(host, port, { safe: false }, { auto_reconnect: true }, {}));
this.db.open(function(){});
};
/*
* Get collection
*/
Categories.prototype.getCollection = function(callback) {
this.db.collection('categories', function(error, category_collection) {
if(error) callback(error);
else callback(null, category_collection);
});
};
...
exports.Categories = Categories;
В файле есть, очевидно, другие функции, но для краткости я их опустил. В файле мои маршрутов У меня есть:
var Categories = require('./models/categories');
exports.Melo = function(req, res) {
Categories.findAll(function(error, prds) {
res.send(prds);
});
};
И в моем app.js у меня есть:
var route = require('./routes').Melo;
app.get('/test', route);
Тем не менее, когда я пытаюсь запустить узел я получаю ошибку о том, что узел не может найти модуль './models/categories'.
Важно, чтобы заметить, что в моделях/и в маршрутах/будут другие файлы, то есть:/модели/пользователей,/модели/заказы, маршруты/пользователей, маршруты/заказы и т.д.
Что я делаю неправильно?
Обратите внимание, что я не использую Mongoose.
Большое спасибо за вашу помощь.
Да, но в этом случае se, ошибка, которую я получаю, отличается от: Object #
Изменить последнюю строку в категориях ('export.Categories = Категории;') на 'module.exports = new Categories();', и она будет работать. Вы ошибаетесь: 1) вы переходите к функции конструктора вместо объекта для экспорта. 2) вы передаете его как свойство объекта экспорта, а не как объект. – berrunder
Привет, Berrunder. К сожалению, это тоже не сработало. Теперь у меня возникла ошибка из модуля MongoDB: /.../node_modules/mongodb/lib/mongodb/connection/connection_pool.js:15 throw new Error («host должен быть указан [« + host + »]»); ^ Ошибка: хост должен быть указан [undefined] при новом экспорте.ConnectionPool (/ .../node_modules/mongodb/lib/mongodb/connection/connection_pool.js:15:11) – WagnerMatosUK