readline在输入之前处理输入

时间:2016-12-21 06:24:53

标签: node.js readline nodemailer

我正在尝试制作一个程序,将逗号分隔的2封电子邮件作为输入,并分别向其发送一封电子邮件。我正在使用readline模块来获取输入,使用nodemailer模块来发送邮件。

代码:

const readline = require('readline')
let rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('enter emails seperated by a comma: ', (ans) => {
    var players = ans.split(',');
    mailOptions1.to = players[0];
    mailOptions2.to = players[1];
    nextFunction();
}

这里nextFunction是一个生成电子邮件文本并发送它的函数。

当我执行此代码时,问题'输入用逗号分隔的电子邮件:'显示,当我输入电子邮件时,它突然尝试发送邮件并给出没有收件人定义的错误(显然,因为我是在定义收件人的过程中)

对于为什么会发生这种情况及如何解决问题的任何见解都将非常感激。 :)

更新:正如杰夫指出的那样,代码背后的逻辑很好。似乎我的应用程序的其他部分导致了错误。这个问题可能无关紧要。 :/

1 个答案:

答案 0 :(得分:1)

我对此进行了测试,它对我有用。我将以下内容放在rl-test.js中:

const readline = require('readline');
let rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('enter emails separated by a comma: ', (ans) => {
    var players = ans.split(',');
    console.log(players[0] + '\n' + players[1]);
});

并使用node rl-test.js从命令行调用它,结果如下:

$ node rl-test.js
enter emails seperated by a comma: foo,bar
foo
bar

不知道该告诉你什么,但希望你知道它确实有效。你能试试吗?