2013-04-23 7 views
0

Я работаю над рефакторингом файла server.js и пытаюсь включить шаблон MVC. У меня возникла проблема с попыткой получить доступ к моему контроллеру с моих маршрутов. Js. Я пробовал практически все варианты абсолютного и относительного пути, которые я могу думать, но я должен что-то упустить. Вот моя структура каталогов: enter image description hereКак исправить эту проблему с узлом.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) 

Я уверен, что это что-то простое, что я уже смотрю. Как я могу получить доступ к своему контроллеру от моих маршрутов?

ответ

2

Требовать что-то, что не является отдельным пакетом (не в node_modules), вам нужно использовать явно относительный путь:

require('./controllers/clients') 

Для получения дополнительной информации см documentation.

0

Локальные модули

require(...) принимает относительный путь для локальных модулей

require('./controllers/clients') 

Installaed модули

Для модулей, установленных с помощью npm install -S foo, использовать синтаксис

require('foo') 
Смежные вопросы