node的readline模塊使用案例

1、func.js

const fs = require("fs");

function fsRead(path){//封裝讀取文件函數
    return new Promise((resolve,reject)=>{
        fs.readFile(path,{
            encoding:"utf-8"
        },(err,data)=>{
            if(err) reject(err);
            resolve(data);
        })
    });
}

function fsWrite(path,conten){//封裝寫入文件函數
    return new Promise((resolve,reject)=>{
        fs.writeFile(path,conten,{
            encoding:"utf-8",
            flag:"a"//追加寫入
        },(err)=>{
            if(err) reject(err);
            resolve();
        })
    });
}

module.exports = {
    fsRead,fsWrite
}

2、input.js

const readline = require("readline");
const {fsWrite} = require("./func");

let r1 = readline.createInterface({//創建接口
    output:process.stdout,
    input:process.stdin
});

function questionFunc(content){
    return new Promise((resolve,reject)=>{
        r1.question(content,(as)=>{
            resolve(as);
        });
    });
}

async function questionQS(){
    let name =await questionFunc("請問你是?");
    let age = await questionFunc("你今年多大?");
    let address =await questionFunc("你目前所在地?");

    let json = `{
        "name":"${name}",
        "age":${age},
        "address":"${address}"
    }`;
    await fsWrite("main.json",json);
    r1.close();
}
questionQS();

r1.on("close",()=>{
    console.log("文件創建成功");
    process.exit(0);
})


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章