node.js的常用API

407 阅读1分钟

一、path

1. path.join & path.resolve

// path.join
const path = require('path')

// path.join: 路径拼接函数
let p = path.join('/a', 'b', 'c', '../d') 
console.log(p)// a/b/d
let p1 = path.join(path.resolve(), 'a', 'b')
console.log(p1) // js文件所在路径/a/b

// path.resolve: 路径解析,从右向左,遇到第一个带 / 的路径停止,与后面的路径拼接返回
let p2 = path.resolve(__dirname)
console.log(p2) 

p3 = path.resolve('/a', '/b', '/c', 'd', './e')
console.log(p3) // c/d/e

说明:
1.path.resolve()没有参数,返回当前文件所在的绝对路径
2.有参数,参数中没有以 / 开头的路径,返回绝对路径与各参数的拼接
3.有参数,参数中有以 / 开头的路径,返回从右向左遇到的第一个路径与其后面参数的拼接

参考:https://www.jianshu.com/p/3a713442b70b

二、fs

1. readFile && readFileSync

const fs = require('fs');
const path = require('path');

// 异步读取文件内容
fs.readFile(path.join(__dirname, 'a.txt'), (err, data) => {
    if (err) {
        throw new Error(err);
    }
    console.log(data);
    console.log('*********')
    console.log(data.toString());
})

// 阻塞I/O
const data = fs.readFileSync(path.join(__dirname, 'a.txt'),'utf-8');
console.log(data)

// 这是测试内容,hello, world.
// <Buffer e8 bf 99 e6 98 af e6 b5 8b e8 af 95 e5 86 85 e5 ae b9 ef bc 8c 68 65 6c 6c 6f 2c 20 77 6f 72 6c 64 2e>
// *********
// 这是测试内容,hello, world.

三、http

1.createServer

const http = require('http');

const server = http.createServer();

server.on('request', (req, res) => {
    res.setHeader('Content-Type', 'text/html; charset=utf-8');
    res.write(`<h3>hello, world. this is a http server.</h3>`);
    res.end();
});

server.listen(8081, () => {
    console.log('listening on 8081...')
})