Javascript 要求

Javascript Require

include.js 文件包含

var test = function(){
    console.log("log from included file");
};

main.js 文件包含

require('./include.js');
test();

当我尝试使用 node main.js 命令运行 main.js 时,它显示

module.js:340
    throw err;
          ^
Error: Cannot find module 'include.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> (d:\Nishada\test\main.js:1:63)
    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 Function.Module.runMain (module.js:497:10)

这个错误的原因是什么?

您需要导出测试函数才能在 main.js

中使用它
var test = function(){
    console.log("log from included file");
};

module.exports = test

并在main.js中添加require如下

require('./include.js'); // assuming include.js is in same directory as main.js

如果你这样做 require('include.js') 那么节点将在全局包中搜索 include

错误是指找不到文件,请确保您的文件与 main.js 位于同一目录中,然后尝试:

include.js

module.exports = {
    test: function(){
        console.log("log from included file");
    }
}

main.js

var myInclude = require('include.js');
myInclude.test();

您必须提供 include.js 的相对路径,而 require

如果两者都在同一个目录中,请像下面这样写

var include = require('./include.js');
include.test();

include.js 开始,您可以将它们定义为 exports

的函数
exports.test = function(){
    console.log("log from included file");
};

更好

include.js 中仅导出一个具有多个功能的对象,而不是导出每个单独的功能。

点赞

include.js

exports.test = obj;
obj.func1 = function(){};
obj.func2 = function(){};

main.js

var test = require('./include.js').test;
test.func1();
test.func2();