我正在尝试在requirejs define函数内加载npm请求模块。
define(function () {
console.log("run");
var request = require('request');
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Show the HTML for the Google homepage.
}
})
});
当浏览器点击require('request')时,会抛出此错误。
未捕获错误:尚未为上下文加载模块名称“request”:_。 >使用require([])
根据我的理解,nodejs和requirejs都定义了一个require()函数,所以在教程示例中, https://github.com/request/request 我相信当他们调用require()时它正在使用nodejs require函数,但在我的情况下,它认为require是不同的东西。 如果这实际上是问题,如何更改require或node的<(p>)的require()函数名称
答案 0 :(得分:1)
如果我安装RequireJS和request
并创建一个名为test.js
的文件,其中包含:
var requirejs = require("requirejs");
requirejs("foo");
在同一目录中,我创建了一个名为foo.js
的文件,其中包含您的代码:
define(function () {
console.log("run");
var request = require('request');
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Show the HTML for the Google homepage.
}
})
});
我执行:
$ node test.js
然后我在控制台上加run
加上页面正文。
我尝试了变体:
将RequireJS导入为require
:var require = require('requirejs')
使用呼叫的异步形式:requirejs(["foo"])
上述各种混合物。
我无法重现您举报的行为。