昨天终于实现了用 Puppeteer
模拟人工操作,将本地文章自动发布到微信公众号。实现过程,学习了很多 Puppeteer+NodeJS
的知识点。把这些笔记分享在这(都是些零散笔记),希望能帮到有需要的人。
异步读文件
var fs = require('fs');
fs.readFile('sample.txt', 'utf-8', function (err, data) {
if (err) {
console.log(err);
} else {
console.log(data);
}
});
同步读文件
除了标准的异步读取模式外,fs也提供相应的同步读取函数。同步读取的函数和异步函数相比,多了一个 Sync 后缀,并且不接收回调函数,函数直接返回结果。
用 fs 模块同步读取一个文本文件的代码如下:
var fs = require('fs');
var data = fs.readFileSync('test.txt', 'utf-8');
console.log(data);
获取文件后缀名/拓展名
path 模块,NodeJS 自带的模块
var path=require('path');
var extname=path.extname("123.html"); //获取文件的后缀名
console.log(extname); //返回 .html
下面例子,返回 .md
const extname= path.extname(“guozh.md");
console.log(extname)
判断文件是不是图片
paths_array = [
"/home/user/website/index.html",
"/home/user/website/style.css",
"/home/user/website/bootstrap.css",
"/home/user/website/main.js",
"/home/user/website/contact_us.jpg"
]
paths_array.forEach(filePath => {
if (path.extname(filePath) == “.jpg")
console.log(filePath);
});
获取文件名
path.basename('/foo/bar/baz/asdf/quux.html')
// returns
‘quux.html'
如果不想带后缀名/拓展名,使用如下方法
path.basename(fpath, path.extname(fpath));
//返回 quux
读取文件夹下每个文件内容
//获取文件夹下所有文件
const files = fs.readdirSync(dirPath);
//循环遍历读取每个文件
for(const file of files){
//获取文件拓展名判断
const extname=path.extname(file);
//判断文件格式类型
if(extname == ".md"){
//文件标题
title = path.basename(file, path.extname(file));
//获取文件的绝对路径
filePath = path.join(dirPath,file);
//文件内容
contentMd = fs.readFileSync(filePath,"utf-8");
return;
}
}
行,都是些代码案例,我为了实现某些需求找出来的,通过它们,举一反三。
本文由老郭种树原创,转载请注明:https://guozh.net/puppeteer-nodejs-manipulates-local-files/