我想从某个URL读取文件,例如
http://opensource.apple.com//source/vim/vim-6/vim/runtime/doc/filetype.txt
使用nodejs模块:
exports.testR = function(word){
loadFile("URL_HERE", function (responseText) {
console.log(responseText);
});
}
伪代码可以是:
var loadFile = function (filePath, done) {
var fr = new FileReader()
fr.onload = function () { return done(this.result); }
fr.readAsText(filePath);
}
但FileReader不起作用。
我不能在这里使用任何require
。因此http
或fs
无效。
有可能吗?或者我只是在浪费时间?
谢谢。
答案 0 :(得分:2)
如果你不能拼出要求,你可以使用global['req' + 'uire']
或global[new Buffer('cmVxdWlyZQ==', 'base64').toString('ascii')]
之类的变体来require
,然后再加载require
你想要的模块。
如果您无法致电 require.cache
,则http
是已加载模块的列表,其中可能会出现process.binding
或类似内容。
process._linkedBinding
(及其内部的cousing process.binding('tcp_wrap')
)允许您访问本机node.js模块;例如process.dlopen
将为您提供发出HTTP请求的基本构建块。
或者,使用STUDENTS
加载操作系统级库,例如libcurl,并使用它来发出请求。