Javascript Can';t使用;要求;加载模块

Javascript Can';t使用;要求;加载模块,javascript,netbeans,Javascript,Netbeans,我无法成功使用“require”加载模块。我的书没有提供足够的上下文 它声称这就是我在模块文件(文件名为“newjavascript.js”)中需要的全部内容: 这是我在netbeans中作为单独文件所具有的require函数: function require(InterFaceFile) { var code = new Function("exports", readFile(InterFaceFile)); var exports = {}; code(exports); ret

我无法成功使用“require”加载模块。我的书没有提供足够的上下文

它声称这就是我在模块文件(文件名为“newjavascript.js”)中需要的全部内容:

这是我在netbeans中作为单独文件所具有的require函数:

function require(InterFaceFile) {

var code = new Function("exports", readFile(InterFaceFile));

var exports = {};

code(exports);

return exports;

}

console.log(weekDay.name(1));

output: "weekDay.name is not a function"
这与本书前面描述的模块相同,它提到这更多的是针对浏览器端:

(function(exports) {

 var days = ["monday", "tuesday", "wednesday", "thursday"];

 exports.name = function(number) {

 return days[number];

 };

 exports.day = function(name) {

 return days.indexOf(name);

 };

})(this.weekday = {});

console.log(weekday.name(1));
我知道“weekDay”在第一个文件中没有位置,所以我尝试使用文件名来代替它(newjavascript.js,带引号和不带引号),还尝试将整个第一段代码包装到一个名为“weekDay”的函数中,我在浏览器和netbeans上尝试过,但没有成功。我觉得如果我能解决这个问题,从现在开始将会一帆风顺!谢谢!

感觉您的问题(或代码)缺少一些行,我可以想象这会起作用:

// code for require here
const weekDay = require("/path/to/weekday.js"):
console.log(weekDay.name(1)):
这似乎是一个了解NodeJS样式需要如何工作的练习。 或者,如果您正在使用其他方法(模块模式):


缺少的步骤实际上是“需要”模块,并将结果绑定到一个变量,您可以使用该变量调用函数!

浏览器代码开始:

(函数(导出){
风险值天数=[“周一”、“周二”、“周三”、“周四”];
exports.name=函数(编号){
返回天数[数字];
};
exports.day=函数(名称){
返回天数。indexOf(名称);
};
})(window.weekday={});

console.log(weekday.name(1));
为什么需要重写
require
?它已经为您编写好了——这是一个重新发明轮子的练习吗?如果是的话,很高兴听到您在读哪本书。感谢您的澄清。所以我添加了“var weekday=require(“newjavascript.js”)”,现在它说“readFile未定义”,越来越近!好的,如果这是NodeJS,请在文件的开头执行此操作:const fs=require('fs'),然后您可以调用fs.readFileAsync。(此require与您自己的require执行相同的操作,但它是内置版本)它表示“无法读取未定义的属性'readFileAsync'”。我不知道我的netbeans是否有加载fs模块的信息。我假设您没有为此使用NodeJS。在这种情况下,您必须使用模块模式(第二个示例)来测试本章。
// code for require here
const weekDay = require("/path/to/weekday.js"):
console.log(weekDay.name(1)):
const weekDay = (function(exports) {
 var days = ["monday", "tuesday", "wednesday", "thursday"];
 exports.name = function(number) {
 return days[number];
 };

 exports.day = function(name) {
 return days.indexOf(name);
 };

})({});

console.log(weekDay.name(1));