node.js从不同的文件访问模型

时间:2014-11-10 08:41:25

标签: node.js models

我的项目如下:

enter image description here

我的问题是即时通过教程http://youtu.be/5e1NEdfs4is。 但我想处理index.js中app.js

中的所有路径

在我的index.js中,我执行以下操作:

router.route('/api/bears')

//create a bear (Accessed at POST http://localhost:3000/api/bears)
.post(function(req, res) {

    var bear = new Bear();  // create a new instance of the bear model
    bear.name = req.body.name;  // set the bears name (comes from post request)

    //save the bear and check for errors
    bear.save(function(err) {
        if(err)
            res.send(err);

        res.json({ message: 'Bear created!' });
    });
})

// get all the bears (accessed at GET http://localhost/api/bears)
.get(function(req, res) {
    Bear.find(function(err, bears) {
        if(err)
            res.send(err);

        res.json(bears);
    });
});

在app.js中加载所有模型:

//load all files in models dir
fs.readdirSync(__dirname + '/app/models').forEach(function(filename) {
if (~filename.indexOf('js')) require(__dirname + '/app/models/' + filename)
});

并且在index.js中我想声明变量:

var Bear = require('./app/models/bear');

但这似乎不起作用。

我收到错误:

enter image description here

如果看起来像这样的熊.js:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var BearSchema = new Schema({
name: String
});

module.exports = mongoose.model('Bear', BearSchema);

如果我正在使用node.js做一些超级错误的事情,那是因为我对它很新,并且从未使用过javascript。

感谢我能得到的所有帮助!

2 个答案:

答案 0 :(得分:1)

好的,好像你必须从一个文件夹回来。

事实上,对于nodejs,您必须指定当前目录的路径。

如果你需要在index.js(在路径文件夹中)中需要承担,你必须做类似的事情:

var Bear = require('../yourfolder')

答案 1 :(得分:0)

您可以通过以下方式访问:

var Bear = require('../models/bear');