2016-05-13 114 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