我正在重构我的server.js文件并尝试合并MVC模式。我试图从我的routes.js访问我的控制器时遇到问题。我已经尝试了几乎所有我认为的绝对和相对路径的变化,但我必须遗漏一些东西。 这是我的目录结构:
从我的routes.js,这是我的代码:
module.exports = function ( app, passport, auth ) {
var Clients = require('controllers/clients');
app.get('/clients', Clients.list);
}
我不认为这是相关的,但这是我的客户控制器:
var mongoose = require('mongoose')
, Client = mongoose.model('Client');
exports.list = function( req, res ) {
Client.find( function( err, clients ) {
res.renderPjax('clients/list', { clients: clients, user: req.user });
});
}
以下是我尝试从路径访问控制器时遇到的错误:
module.js:340
throw err;
^
Error: Cannot find module 'controllers/clients'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at module.exports (/Users/sm/Desktop/express3-mongoose-rememberme/app/routes.js:5:16)
at Object.<anonymous> (/Users/sm/Desktop/express3-mongoose-rememberme/server.js:334:24)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
我确信我看起来很简单。如何从中访问我的控制器 我的路线?
答案 0 :(得分:2)
答案 1 :(得分:0)
require(...)
采用本地模块的相对路径
require('./controllers/clients')
对于通过npm install -S foo
安装的模块,请使用语法
require('foo')