我转过几个弯 绕过那个小雨楼
拿着蒲扇摆着衣衫渡着紧箍咒
不问天涯不停留 喝过几壶酒
不过年少白头道义放胸口
倘若明天之后 遥看前尘剑封侯
似那天上神仙无所求
朝朝暮暮君如梦醒十分不为何理由
是真是假是惶恐是无休
路过这风雨花满楼 片刻都不停留
我本这书生进京赶考留下许多愁
你问有没有时候 我叹这天道默悠悠
能否与我一醉方休
又过了几个弯 算尽天量道莫慌
踏这田园闻这芳草香
跌跌撞撞仗剑天涯折煞不枉无笔良
是梦是幻是温柔是家乡
路过这风雨花满楼 片刻都不停留
我本这书生进京赶考留下许多愁
你问有没有时候 我叹这天道默悠悠
能否与我一醉方休
路过这风雨花满楼 片刻都不停留
我本这书生进京赶考留下许多愁
你问有没有时候 我叹这天道默悠悠
能否与我一醉方休
谁能与我一醉方休
koa框架27 生成管理员账号
生成管理员账号一般如果自己手动去改文件,设置一个name一个password也行,但是太麻烦了,node有一个模块,可以以问题得形式询问用户,然后用户输入内容,回车后会触发一个回调,回调的参数就是用户输入的内容。
首先我们需要引入一个官方的模块:readline;
libs/rl.js
const readline = require("readline");
let rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.questionAsync = function(question) {
return new Promise((resolve, reject) => {
rl.question(question, val => {
resolve(val);
})
});
}
rl.on('close', function () {
process.exit(0);
});
module.exports = rl;
由于我们需要在外面使用这个模块,创建了一个自定义的questionAsync 方法。
需要注意一点,如果我们不手动关闭这个模块的话,会一直输入,所以要监听close事件,这个事件是预设好的,但是退出方法要自己写,所以要有一个回调函数。‘
utils/add_admin.js
由于创建账号是一个工具,所以我们丢到utils里面
const rl = require("../libs/rl");
const mysql = require("../libs/mysql");
const password = require("../libs/password");
(async () => {
let flge = true;
let db = await mysql;
while (flge) {
let name = await rl.questionAsync("账号:");
if (!name) {
console.log("账号不能为空!");
continue;
}
let sql_name = await db.query("SELECT * FROM admin_table WHERE username=?", [name]);
if (sql_name.length) {
console.log("账号已存在");
continue;
}
let pass = await rl.questionAsync("密码:");
while (!pass) {
console.log("密码不能为空!");
pass = await rl.questionAsync("密码:");
}
await db.query("INSERT INTO admin_table (username,password) VALUES(?,?)", [name, password(pass)]);
console.log("管理员账号创建成功!");
//结束循环
flge = false;
}
//退出提示
rl.close();
})();
0
评论(0)