栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在nodejs控制台中隐藏密码?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在nodejs控制台中隐藏密码?

覆盖应用程序的readline接口的_writeToOutput:https
:
//github.com/nodejs/node/blob/v9.5.0/lib/readline.js#L291

要隐藏密码输入,可以使用:

第一个解决方案:“密码:[=-]”

按下触摸时此解决方案具有动画:

password : [-=]password : [=-]

代码 :

var readline = require('readline');var rl = readline.createInterface({  input: process.stdin,  output: process.stdout});rl.stdoutMuted = true;rl.query = "Password : ";rl.question(rl.query, function(password) {  console.log('nPassword is ' + password);  rl.close();});rl._writeToOutput = function _writeToOutput(stringToWrite) {  if (rl.stdoutMuted)    rl.output.write("x1B[2Kx1B[200D"+rl.query+"["+((rl.line.length%2==1)?"=-":"-=")+"]");  else    rl.output.write(stringToWrite);};

此序列“ x1B [2K x1BD”使用两个转义序列:

  • Esc [2K:清除整行。
  • Esc D:将窗口向上移动/滚动一行。

要了解更多信息,请阅读:http :
//ascii-table.com/ansi-escape-sequences-vt-100.php

第二解决方案:“密码:****”

var readline = require('readline');var rl = readline.createInterface({  input: process.stdin,  output: process.stdout});rl.stdoutMuted = true;rl.question('Password: ', function(password) {  console.log('nPassword is ' + password);  rl.close();});rl._writeToOutput = function _writeToOutput(stringToWrite) {  if (rl.stdoutMuted)    rl.output.write("*");  else    rl.output.write(stringToWrite);};

您可以使用以下方式清除历史记录:

rl.history = rl.history.slice(1);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/595018.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号