2016-05-13 103 views
0

我試圖要求我正在處理的節點項目中的另一個文件;這將是一個命令行工具。我想要做的就是創建使用下面的文件format.js格式化的彩色輸出:需要節點中的其他文件

modules.exports = { 
    warning: function(input){ 
     say("\033[31m" + input) 
    }, 

    info: function(input){ 
     say("\033[36m" + input) 
    } 
} 

從那裏我想創建彩色輸出,並把它放到一個名爲gen_email.js文件。該文件中有這兩個功能:

function say(input){ 
    console.log(input) 
} 

function helpPage(){ 
    say(''); 
    format.info("test") 
} 

當我試圖運行這個它輸出以下:

C:\Users\thomas_j_perkins\bin\javascript\node\email\lib\format.js:1 
(function (exports, require, module, __filename, __dirname) { modules.exports = { 
                  ^

ReferenceError: modules is not defined 
    at Object.<anonymous> (C:\Users\thomas_j_perkins\bin\javascript\node\email\lib\for 
mat.js:1:63) 
    at Module._compile (module.js:409:26) 
    at Object.Module._extensions..js (module.js:416:10) 
    at Module.load (module.js:343:32) 
    at Function.Module._load (module.js:300:12) 
    at Module.require (module.js:353:17) 
    at require (internal/module.js:12:17) 
    at Object.<anonymous> (C:\Users\thomas_j_perkins\bin\javascript\node\email\gen_ema 
il.js:3:16) 
    at Module._compile (module.js:409:26) 
    at Object.Module._extensions..js (module.js:416:10) 

我不明白我在做什麼錯,根據this我我需要正確的方法。我在這裏做錯了什麼,我需要將say函數移動到另一個文件中嗎?

回答

1

應該

module.exports = { 
warning: function(input){ 
    say("\033[31m" + input) 
}, 

info: function(input){ 
    say("\033[36m" + input) 
} 

}

中的其他文件

const format = require("whatEverPathIsOn/format.js") 

如果該文件是相同的路徑下,只是

const format = require("./format.js") 
0

那應該是module,而不是modules

+0

請問我還需要將'say'函數移動到另一個文件中? – 13aal

+0

@ 13aal:你需要'require()' – SLaks

+0

那麼需要另一個文件中的函數嗎? – 13aal