gpt4 book ai didi

javascript - 如何从 NodeJS 中的其他文件导出函数

转载 作者:太空宇宙 更新时间:2023-11-04 02:52:46 25 4
gpt4 key购买 nike

我有两个文件:

myService.js

const Period= require('./period');
const myService = module.exports = {};

const defaults = {
heating: new Period('heating', 'Oct', 15, 'Mar', 1),
cooling: new Period('cooling', 'Apr', 15, 'Sep', 15)
};

const periods = {
AustraliaDefault: {
heating: new Period('heating', 'Jul', 1, 'Aug', 31),
cooling: new Period('cooling', 'Sep', 1, 'Mar', 1)
}
};

myService.getPeriod = function (site, key) {
return Promise.all([
myService.findHeat(site, key),
myService.findCool(site, key)
]).spread(function (heating, cooling) {
return { heating: heating, cooling: cooling };
});
};

myService.findHeat = function (site, key) {
return Promise.resolve(periods[key] && periods[key]['heating'] || defaults['heating']);
};
myService.findingCoolingSeason = function (site, key) {
return Promise.resolve(periods[key] && periods[key]['cooling'] || defaults['cooling']);
};

Breakdown.js

...
const myService = require('./myService');
...

check('no use of heating during summer', function (report) {
const model = report.findSection('Breakdown').model;
const heatingSeries = _.findWhere(model.series, { name: 'Space heating' });
if (!heatingSeries || model.series.length === 1) {
return;
}

const totalAccounts = _.size(report.asModel().accountNumbers);
const warnings = _.compact(_.map(['May', 'Jun'], function (monthLabel) {
const summerIndex = _.indexOf(model.xAxis, monthLabel);
const heatingSummerCost = heatingSeries.data[summerIndex];
if (heatingSummerCost > (totalAccounts * maxSum)) {
return {
month: monthLabel,
cost: heatingSummerCost,
accounts: totalAccounts
};
}
}));
this.should(!warnings.length, util.format('breakdown chart indicates heating (%s) in summer (%s) in %d account(s)', _.pluck(warnings, 'cost'), _.pluck(warnings, 'month'), totalAccounts));
}),

第一个文件必须描述北半球和南半球不同的季节(夏季、冬季)。我必须以某种方式在 Breakdown 中调用 myService 。如果将其设置为默认值,它将检测到夏季是否使用暖气(因为默认情况下采用北半球季节),但它必须能够检查要计算哪一个。

我尝试的是将 myService 导入到 Breakdown 中,而不是映射 ['May', 'Jun'] 来使用 myService.findHeatmyService.Seasons 等,但它不起作用。无论我使用什么方法,它都让它们为未定义

有什么建议吗?

最佳答案

如果您还没有将以下行添加到 myService.js(如果还没有的话)。

exports.myService = myService

编辑

尝试删除,

const myService = module.exports = {};

并添加,

exports.myService = myService

在底部。

更新

如果您想将其用作模块,请尝试类似的操作,

module.exports = {
sayHelloInEnglish: function() {
return "HELLO";
},

sayHelloInSpanish: function() {
return "Hola";
}
};

关于javascript - 如何从 NodeJS 中的其他文件导出函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43467444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com