繁体   English   中英

无法从另一个JS文件调用函数

[英]Not able to call functions from another JS file

得到了一个我无法解决的非常简单的问题。 我无法从Node.js中的另一个JavaScript文件调用函数。

我的主文件:

var Binance = require('./binance.js');

//later in the file
app.post('/createBotOrder', function (req, res, next) {
    console.log("in");
    console.log(Binance);
    console.log(Binance.sum(1, 2));
    console.log("in 2");
});

我的辅助文件:

module.exports = function() {
    this.sum = function(a,b) { return a+b };
    this.multiply = function(a,b) { return a*b };
    //etc
}

输出:

in
[Function]

您要导出为具有功能的对象作为对象。

module.exports = { myFunc : function () { //stuff } }

然后在导入myFunc的文件中

const Binance = require('./binance.js')
Binance.myFunc()

Binance是一个构造函数。 它没有sum属性。

当您调用 Binance ,它会将一个函数分配给thissum属性。

您根本不打电话给Binance

从而:

var Binance = require('./binance.js');
var my_binance = new Binance();

//later in the file
app.post('/createBotOrder', function (req, res, next) {
    console.log("in");
    console.log(my_binance);
    console.log(my_binance.sum(1, 2));
    console.log("in 2");
});

也就是说,将Binance用作构造函数是没有意义的。 没有什么可以区分一个实例与另一个实例。 您也可以导出一个简单的对象:

module.exports = {
    this.sum = function(a,b) { return a+b },
    this.multiply = function(a,b) { return a*b },
};

接着:

var binance = require('./binance.js');

//later in the file
app.post('/createBotOrder', function (req, res, next) {
    console.log("in");
    console.log(binance);
    console.log(binance.sum(1, 2));
    console.log("in 2");
});

请注意,传统上保留以大写字母开头的变量名称供构造函数使用。 由于它不是构造函数,因此我对其进行了重命名。

暂无
暂无

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

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