2014-09-14 22 views
8

मैं अपने लॉग में क्ली-रंग सेट करने के लिए एक साधारण "रंग" मॉड्यूल का उपयोग करने की कोशिश कर रहा हूं, कुछ खास नहीं।node.js एक ही फ़ोल्डर में एक मॉड्यूल नहीं ढूंढ सकता

ठीक है, मैं पथ ./app/config/colors.js में एक मॉड्यूल 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; 

सरल। खैर, जब मैं 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.

तो फिर नोड ./app/config/app/config/colors.js के लिए देखो और असफल हो जायेगी अगर आप एक

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

./app/config/ में स्थित एक मॉड्यूल के अंदर था।

दोनों की आवश्यकता होती है और आवश्यक मॉड्यूल एक ही निर्देशिका में कर रहे हैं बस का उपयोग करें:

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

या भी कम:

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

विफल होने की आवश्यकताएं दिखाना है! बस यही था – Nano

0

मॉड्यूल "node_modules" में होना चाहिए फ़ोल्डर ऐसा उपयोग करने के लिए आपने वर्णन किया है

संबंधित मुद्दे