我知道有很多类似的问题,不过我的情况略有不同,我尝试过这些方法中描述的方法,但仍然没有用。我知道,我必须遗漏一些东西,但我无法弄清楚是什么。
我有这个结构:
根 - 楷模 - 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);
然而,当我尝试启动Node时,我收到一条错误,指出Node无法找到模块'./models/categories'。
重要的是要注意在模型/和路线/中还有其他文件,例如:/ model / users,/ models / orders,routes / users,routes / orders等。
我做错了什么?
请注意我没有使用Mongoose。
非常感谢你的帮助。
答案 0 :(得分:0)
如果Node无法找到模块'./models/categories',您可能只是使用了错误的路径。如果您的项目结构如下:
根
- 模型
---- categories.js
- 航线
---- index.js
,然后在路线文件中,您应该使用var Categories = require('../models/categories');