以相关问题为基础: Load "Vanilla" Javascript Libraries into Node.js
我正在尝试将jQuery.soap加载为NodeJS模块。我已经按照链接问题中的步骤进行了操作,但是我在调用函数时遇到了一些问题。 Soap插件定义:
return $.soap = soap;
调用该功能。所以我用这段代码创建了一个index.js:
var fs = require('fs');
// Read and eval library
filedata = fs.readFileSync('./node_modules/jquery.soap/jquerysoap- lib/jquery.soap.js','utf8');
eval(filedata);
exports.Soap = $.soap;
然后我在我的nodeJS文件中以这种方式加载它。
var Soap = require('jquery.soap');
以这种方式使用它:
Soap({
url: myurl,
appendMethodToURL: false,
SOAPAction: '',
....
)};
我得到'未定义不是函数'。我输出正确吗?我试图把
exports.Soap = soap;
而不是
exports.Soap = $.soap;
但仍然无法正常工作。一旦我这样做,readFileSync应该可以调用$ .soap? 提前致谢
编辑:在我的VanillaJS模块中,我有类似的东西:
function($){
function soap (options) {
}
return $.soap = soap;
}
答案 0 :(得分:0)
您没有正确导入/导出。您将'Soap'导出为模块的成员,但随后将'Soap'导入为'Soap'仅为其成员的整个模块。
你应该去:
exports = $.soap;
或:
var Soap = require('jquery.soap').Soap;
BTW称之为(下套)'肥皂'。不要违反惯例。