2014-09-14 3 views
8

Я пытаюсь использовать простой модуль «colors» для установки цветов cli в моих журналах, ничего особенного.node.js не может найти модуль в той же папке

Ну, у меня есть модуль под названием colors.js в пути ./app/config/colors.js, содержание:

var clc = require('cli-color'); 

var colors = { 
    ok: clc.cyan, 
    error: clc.red.bold, 
    warn: clc.yellowBright, 
    high: clc.white.bgGreen 
}; 

module.exports = colors; 

Simple. Ну, когда я требовать его в server.js (в корне проекта, выше из/приложения) он работает отлично, но, когда я пытаюсь использовать его в ./app/config/db.js он бросает мне ошибку:

Error: Cannot find module './app/config/colors.js' 
    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 Object.<anonymous> (/home/nano/Dev/bears-api/app/config/db.js:3:14) 
    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) 
    at Module.require (module.js:364:17) 
14 Sep 10:21:00 - [nodemon] app crashed - waiting for file changes before starting... 

Почему это работает на сервере server.js?

+0

Вы должны показать нам, что не удалось – soulcheck

ответ

12

Возможно, вам необходим модуль с использованием относительного пути.

Относительные пути разрешены относительно местоположения требуемого модуля.

Цитирование docs

A module prefixed with './' is relative to the file calling require(). That is, circle.js must be in the same directory as foo.js for require('./circle') to find it.

Так что, если вы сделали

var whatever = require('./app/config/colors.js'); 

внутри модуля, расположенного в ./app/config/ затем узел будет искать ./app/config/app/config/colors.js и потерпеть неудачу.

Если оба требуют и требуется модуль находится в том же каталоге, просто используйте:

var whatever = require('./colors.js'); 

или еще короче:

var whatever = require('./colors'); 
+0

Спасибо! это все – Nano

0

Модуль должен быть в «node_modules» папка для доступа к нему, как вы описали.

Смежные вопросы