Javascript Can';t使用;要求;加载模块
我无法成功使用“require”加载模块。我的书没有提供足够的上下文 它声称这就是我在模块文件(文件名为“newjavascript.js”)中需要的全部内容: 这是我在netbeans中作为单独文件所具有的require函数: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
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));