MENU

Node.js 入门笔记2

July 27, 2020 • Read: 208 • Node.js

数据读入(异步普通版本)

var readline = require('readline');
var rd = readline.createInterface({
    input:process.stdin,
    output:process.stdout
});

rd.on('close', () => {
    process.exit(0);
})

rd.question("这是询问语句", (answer) => {
    console.log(answer);
    rd.close();
})

数据读入(封装版本)

var readline = require("readline");

// 注册一个接口
var rd = readline.createInterface({
    input:process.stdin,
    output:process.stdout
});

// 注册一个close事件
rd.on('close', () => {
    process.exit(0);
});

// 将程序返回为一个Promise对象来减少嵌套
function question() {
    return new Promise((resolve, reject) => {
        rd.question("这是询问语句", (ans) => {
            resolve(ans);
        });
    });
}

// 设置一个异步的程序来调用上面的Promise对象
async function read() {
    // await 关键词的意思是等待结束
    var firstQuestion = await question();
    var secondQuestion = await question();
    
    console.log("第一个问题是:", firstQuestion);
    console.log("第二个问题是:", secondQuestion);
    
    rd.close();
}

read()
// 千万不要忘记在这里调用程序

文件读入

var fs = require('fs');

function fsRead(path) {
    // 注意这里的new关键字
    return new Promise(function(resolve, reject) {
        // 这里的function 也可以替换为箭头函数
        fs.readFile(path, {flag:'r', encoding:'utf-8'}, (err, data) => {
            if (err) {
                reject(err);
            } else {
                resolve(data);
            }
        });
    });
}
async function read() {
    var info = await fsRead('config.txt');
    
    console.log(info);
}

read();

文件夹读取

var fs = require('fs');

function fsReadDir(path) {
    return new Promise((resolve, reject) => {
        fs.readdir(path, (err, files) => {
            if (err) {
                reject(err);
            } else {
                resolve(files);
            }
        });
    });
}

async function readDir() {
    var dir = await fsReadDir('./');
    // 返回的是一个数组
    console.log(dir);
}

readDir();

删除文件

var fs = require('fs');

filename = 'config.txt';
fs.unlink(filename, () => {
    console.log("成功删除");
});

删除文件夹

var fs = require('fs');

path = 'config';
fs.rmdir(path, () => {
    console.log('成功删除');
});
Archives Tip
QR Code for this page
Tipping QR Code