《Node.js 常用代码片段》
1. 遍历对象条目
// 方式一:Object.keys()
let obj = { key1: "value1", key2: "value2", key3: "value3" };
Object.keys(obj).forEach(key => {
let value = obj[key];
// use key and value here
});
// 方式二:for...in
for (const key in obj) {
let value = obj[key];
// 检查是否来自原型链
if (obj.hasOwnProperty(key)) {
// 自身属性
} else {
// 原型链属性
}
}
2. 数组 join 成字符串
let array = ["hello", "world", "!"];
console.log(array.join('-')); // hello-world-!
3. 删除一个文件
同步 API:
const fs = require('fs');
const path = './example.txt';
try {
fs.unlinkSync(path);
// file removed
} catch (err) {
console.error(err);
}
异步 API:
fs.unlink(path, (err) => {
if (err) {
console.error(err);
return;
}
// file removed
});
4. 遍历数组的几种方式
arr.forEach(function (item) {
someFn(item);
});
for (var i = 0, len = arr.length; i < len; i++) {
someFn(arr[i]);
}
5. 读取 PassThrough body(异步流拼接)
// 将 chunk data 串起来,放在 buffer 里面
async function readableToBuffer(body) {
let buffers = [];
let p = new Promise(function (resolve, reject) {
body.on('data', chunk => {
buffers.push(chunk);
});
body.on('end', () => {
resolve(true);
});
});
await p;
return Buffer.concat(buffers);
}
// 使用示例
let resp = await event.fetch(event.request, event.config);
// resp.body 是个 PassThrough 类
let result = await readableToBuffer(resp.body);
try {
// 记得把 buffer 转换为 string
let resultObj = JSON.parse(result.toString());
console.log(resultObj);
} catch (e) {
console.error(e);
}
阅读 —
·
全站 —