需要节点中的其他文件

时间:2016-05-13 13:31:29

标签: javascript node.js

我试图在我正在处理的节点项目中要求另一个文件;这将是一个命令行工具。我尝试做的是使用以下文件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函数移动到另一个文件中?

2 个答案:

答案 0 :(得分: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")

答案 1 :(得分:0)

应该是module,而不是modules