コマンドライン受付部分を作る
index.js
const readline = require('readline');
require('dotenv').config();
const Handler = require('./cli/handler');
const start = async ()=>{
await Handler.init();//起動と同時にやる処理
//準備
const reader = readline.createInterface({
input: process.stdin, // 標準入力
output: process.stdout, // 標準出力
prompt :'やること入力して> '
});
// Enterキー押下で読み込み
reader.on('line', async (line) => {
if(line !== ''){
//入力を取得して、コマンドと引数に分ける
const args = line.split(/\s+/);
const cmd = args.shift();
//Handlerの中の関数を実行する
await Handler[cmd](args);
}else{
console.log('');
}
reader.prompt();
});
// ctrl+Cで終了
reader.on('close', () => {
console.log("finish");
});
// コマンドプロンプトを表示
reader.prompt();
}
//実行
start();
##実行するコマンドを定義する
handler.js
const Hogehoge = require('../app/hogehoge');
const handler = {
'init': async (args)=>{
console.log('システムにログインする');
await Hogehoge.fugafuga();
console.log('ログイン完了');
},
comandFuga:async()=>{
console.log('comandFugaを実行');
await Hogehoge.fuga();
console.log('完了')
},
's': async(args)=>{
console.log('オレオレコマンドなら、1文字のコマンドの方がいいよね');
await Hogehoge.search(args);
console.log('表示完了');
},
};
module.exports = handler;