【发布时间】:2020-11-17 00:44:14
【问题描述】:
我最近提取了一个名为 sendTextMessage 的函数,但没有将其修改为自己的模块,以便我可以在不同的位置重新使用它。我想知道之前的位置是否正确地引用了模块内的函数,但除了模拟一些系统函数和编写单元测试之外找不到简单的方法。
在编译语言中,“这个函数是否正确定义”的问题会很快得到回答,但在 JavaScript/Node 中,我假设您需要:
- 运行代码——工作量太大;我需要为要调用的特定路径设置一个完美的条件。
- 编写单元测试 — 是的,但我现在没有;有没有更简单的方法来实现我的目标?
- 等待指标——如果我破坏了某些东西,我会在指标中看到它,但这意味着我正在破坏生产
- ESLint? — 我可以通过 eslint 检查这种情况吗?
- 还有别的吗?
在下面的示例代码中,我刚刚从reminders.js 中提取了sendTextMessage 到twilio.js,并希望确保在reminders.js 中正确定义了该函数。
定义模块(twilio.js):
const accountSid = '...';
const authToken = '...';
const twilio = require('twilio')(accountSid, authToken, {
// US West Coast
edge: 'umatilla',
});
async function sendTextMessage(message, recipientNumber) {
return twilio.messages.create({
from: '+...',
body: message,
to: recipientNumber,
});
}
module.exports = {
twilio,
sendTextMessage, // Recently exported function!
};
消费模块(reminders.js):
const {
sendTextMessage,
} = require('./deps/twilio');
...
// Question: was sendTextMessage correctly extracted out to twilio.js and does my code actually reference it here correctly?
await sendTextMessage(reminderMessage, participantPhoneNumber);
...
【问题讨论】:
标签: javascript node.js eslint