繁体   English   中英

在NodeJS =未定义中加载Vanilla JS库不是函数

[英]Loading Vanilla JS library in NodeJS = undefined is not a function

基于相关问题:将 “ Vanilla” Javascript库加载到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;
 }

您没有正确导入/导出。 您将“ Soap”导出为模块的成员,但随后将“ Soap”导入为整个模块,而“ Soap”只是其中的一个成员。

您应该去:

exports = $.soap;

要么:

var Soap = require('jquery.soap').Soap;

BTW将其称为(小写)“ soap”。 不要违反约定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM