Javascript NodeJS:在服务器启动时请求输入

Javascript NodeJS:在服务器启动时请求输入,javascript,node.js,Javascript,Node.js,是否可以暂停nodeJS服务器的启动,并要求操作员在服务器最终完全启动之前输入一些文本 背景:我想实现用户身份验证,因此使用基于令牌的系统。要对这些令牌进行编码/解码,需要种子或密码 因为我不想将种子存储在服务器上的某个地方,所以我考虑在服务器启动时请求它,然后将其存储在变量中 我知道我可以在开始时将这个秘密作为一个参数传递,它是这样工作的,但是它会显示在控制台中。我希望有一个秘密提示,而不显示它或可能显示**** 有办法做到这一点吗?是的,使用readline模块 这要看情况而定。您可以使用s

是否可以暂停nodeJS服务器的启动,并要求操作员在服务器最终完全启动之前输入一些文本

背景:我想实现用户身份验证,因此使用基于令牌的系统。要对这些令牌进行编码/解码,需要种子或密码

因为我不想将种子存储在服务器上的某个地方,所以我考虑在服务器启动时请求它,然后将其存储在变量中

我知道我可以在开始时将这个秘密作为一个参数传递,它是这样工作的,但是它会显示在控制台中。我希望有一个秘密提示,而不显示它或可能显示****


有办法做到这一点吗?

是的,使用readline模块
这要看情况而定。您可以使用setTimeout或类似的方法冻结线程,但我不建议这样做,因为我不知道这是否会有任何影响。您还可以停止流,我想这更适合,如果令牌存在或不存在,您可以停止/启动。查看此文档了解更多信息

要进行提示,您可以使用类似于提示模块的功能,或者,如果您不需要为一个简单的任务导入大量内容,您可以执行以下操作

function ask(q, c) {
    var sin = process.stdin;
    var sout = process.stdout;

    sout.write(q);

    sin.once('data', function (data) {
        callback(data.toString().trim());
    });
}
要使用它,您需要对该函数进行一个简单的回调调用

ask('Token?', function (token) {
    console.log(token);
    process.exit();
});
变量是默认的nodejs流程功能


另一个好的资源是Efi Shtainer发布的资源。

您可以使用readline并“提示”用户输入一些信息,然后“启动服务器”什么样的服务?在您收到所述输入后从回调中

回拨指南:

谢谢。一切正常。