解决了这个非常简单的问题,我无法解决。我无法从nodejs中的另一个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]
答案 0 :(得分:5)
您要导出为具有功能的对象作为对象。
module.exports = { myFunc : function () { //stuff } }
然后在导入myFunc的文件中
const Binance = require('./binance.js')
Binance.myFunc()
答案 1 :(得分:3)
Binance
是一个构造函数。它没有sum
属性。
当您调用 Binance
时,它将为sum
的{{1}}属性分配一个功能。
您根本不打this
。
因此:
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 },
};
请注意,以大写字母开头的变量名称通常保留给构造函数使用。由于它不是构造函数,因此我将其重命名。