如何使用Node导出文件

时间:2013-12-12 12:47:32

标签: node.js mongodb export

我知道有很多类似的问题,不过我的情况略有不同,我尝试过这些方法中描述的方法,但仍然没有用。我知道,我必须遗漏一些东西,但我无法弄清楚是什么。

我有这个结构:

根     - 楷模        - 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。

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

如果Node无法找到模块'./models/categories',您可能只是使用了错误的路径。如果您的项目结构如下:

- 模型

---- categories.js

- 航线

---- index.js

,然后在路线文件中,您应该使用var Categories = require('../models/categories');