[英]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
,它会将一个函数分配给this
的sum
属性。
您根本不打电话给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.