使用node.js从输入中获取密码
如何使用node.js从输入中获取密码?这意味着您不应该输出在控制台中输入的密码。
How to get password from input using node.js? Which means you should not output password entered in console.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用
read
模块(披露:书面由我) 为此:在你的 shell 中:
然后在你的 JS 中:
或者使用 ESM 和
await
:You can use the
read
module (disclosure: written by me) for this:In your shell:
Then in your JS:
Or using ESM and
await
:更新2015 年 12 月 13 日:
readline
已替换process.stdin
且 node_stdio 已从 Node 0.5.10 中删除< /a>.Update 2015 Dec 13:
readline
has replacedprocess.stdin
and node_stdio was removed from Node 0.5.10.为此,我找到了这篇出色的 Google 网上论坛帖子,
其中包含以下片段:
To do this I found this excellent Google Group post
Which contains the following snippet:
这是我对上面的nailer进行了调整的版本,已更新以获取回调并用于节点0.8的使用:
Here is my tweaked version of nailer's from above, updated to get a callback and for node 0.8 usage:
如何在没有回调的情况下使用
read
通过
async
/await
,我们可以通过遵循标准模式:令人烦恼的是,您必须将 async/await 传播到整个调用堆栈,但这通常是正确的方法,因为它清楚地标记了什么是异步的或不是异步的。
在“read”上测试:“1.0.7”,Node.js v14.17.0。
TODO 如果稍后尝试通过
fs.readFileSync(0)
再次使用 stdin,如何防止 EAGAIN 错误?read
和 https://stackoverflow.com/a/10357818/895245 导致将来尝试使用fs.readFileSync(0) 从标准输入读取
与 EAGAIN 决裂。不知道如何解决这个问题。复制:或:
错误:
询问于:https://github.com/npm/read/issues /39
How to use
read
without a callbackWith
async
/await
, we can get rid of the annoying callback with the following standard pattern:The annoyance is that then you have to propagate async/await to the entire call stack, but it is generally the way to go, as it clearly marks what is async or not.
Tested on "read": "1.0.7", Node.js v14.17.0.
TODO how to prevent EAGAIN error if you try to use stdin again later with
fs.readFileSync(0)
?Both
read
and https://stackoverflow.com/a/10357818/895245 cause future attempts to read from stdin withfs.readFileSync(0)
to break with EAGAIN. Not sure how to fix that. Reproduction:or:
Error:
Asked at: https://github.com/npm/read/issues/39