接着 input 输入的各种功能才可以制作介面互动
所以这边我们使用套件input
npm i input --save
接着再加上将 class FlowController 流程控制加上一个 mainMenu
flowController.js
const viewPrinter = require("../view/viewPrinter");
class FlowController {
constructor() {}
/**
* @description 确保都拿到同一个实例
*
* @static
* @return {*}
* @memberof ConsoleItem
*/
static getInstance() {
if (!this.instance) {
this.instance = new this();
}
return this.instance;
}
/**
* @description 起始画面
*
* @memberof FlowController
*/
async start() {
await viewPrinter.welcome();
this.mainMenu();
}
/**
* @description 主要选单
*
* @memberof FlowController
*/
async mainMenu() {
let selectOption = await viewPrinter.mainMenu();
switch (selectOption) {
case "登入":
break;
case "离开":
console.log(selectOption);
break;
default:
break;
}
this.start();
}
}
let flowController = FlowController.getInstance();
module.exports = flowController;
一样 ViewPrinter 加上 mainMenu
viewPrinter.js
const consoleItem = require("../interface/consoleItem");
const input = require("input");
class ViewPrinter {
constructor() {}
/**
* @description 确保都拿到同一个实例
*
* @static
* @return {*}
* @memberof ConsoleItem
*/
static getInstance() {
if (!this.instance) {
this.instance = new this();
}
return this.instance;
}
/**
* @description 欢迎你
*
* @memberof ViewPrinter
*/
async welcome() {
return new Promise((resolve) => {
let str = [
"=======================================================",
"=======================================================",
"============ ============",
"============ Welcome Node Telegram ============",
"============ ============",
"=======================================================",
"=======================================================",
]
console.log("\x1b[36m");
for( let i = 0 ; i < str.length ; i++ ) {
setTimeout(() => {
console.log(str[i]);
if(i === str.length -1) {
console.log("\x1b[0m");
resolve();
};
}, i * 100);
}
})
}
/**
* @description 主要画面选单
*
* @memberof ViewPrinter
*/
async mainMenu() {
let option = ["登入", "离开"];
let selectOption = await input.select("你好:", option);
return selectOption;
}
}
let viewPrinter = ViewPrinter.getInstance();
module.exports = viewPrinter;
hi!今天要教好几个领免费币的方法!相信大家有看前面几天的内容一定会知道在每次进行交易时,都会需要...
先来看看目前我们专案的资料夹结构: 前面有提到,ActiveRecord 所建立的 model 与 ...
待办事项结构 to do list 需要输入框与输入按钮。 送出输入按钮後产生待办事项与完成按钮。 ...
今天要来补充一下Day9 – views有说明到的csrf,虽然这些东西某某百科都有,那我会特别补充...
不管是预期或非预期,程序往往会发生一些错误,我们不希望使用者Call API或浏览网页的时候发生错误...