生成html提交到git倉庫
基於目前的express博客,寫了一點代碼,通過request模塊來請求站點,將html保存到coding-pages目錄,復制靜態文件夾到coding-pages,最后使用node的child_process模塊執行cmd命令提交到倉庫~~
- 發送http請求
var request = require('request');
var options = {
url: url,
encoding: null,
headers: { 'User-Agent': 'Mozilla/5.0 (Macintosh;
Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36' }
};
request(options, function (error, response, body) {
//請求的回調,編碼問題使用iconv模塊解決
//var iconv = require('iconv-lite');
//var html=iconv.decode(body,'utf-8');
//若是需要解析html則可以使用cheerio模塊
//var cheerio=require('cheerio').load(html,{decodeEntities: false});
//然后就可以像jqueryy一樣去解析html了。
//cheerio('選擇器');
});
然后就可以愉快的抓數據了。之前也寫過基於request,iconv,cheerio,schedule(定時調度模塊)寫了一個抓取的框架
- 保存html到目錄
得到url的路徑部分(除去域名),即:/index.html,/msg.html...
現在只需要根據這個路徑和獲取到的html保存即可
此時有了保存的路徑和內容,保存還不小事一樁么。如下。
function writeText(pathName,content){
var dir= pathHelper.dirname(pathName);//獲取到路徑中的目錄
fs.exists(dir, function (exists) {//如果不存在則創建目錄
if(exists==false){
fs.mkdir(dir);
}
});
fs.writeFile(pathName, content, function (err) {//寫入內容
if (err){
console.log(pathName+'生成失敗');
}
});
}
- 使用node執行.bat文件復制靜態文件到coding-pages目錄
復制目錄可以使用async模塊實現的目錄操作
調用copyDir方法即可。
也可以使用child_process模塊來調用cmd命令實現
注:直接使用require('child_process').exec 執行xcopy並不能復制目錄,需要一種折中的方式
如下:
var exec = require('child_process').exec;
var execbat = __dirname + '\\exec.bat';
//1. 創建復制腳本
commonHelper.writeText(execbat, 'xcopy F:\\CodingRepos\\yimocoding\\coding-pages\\tag F:\\CodingRepos\\yimocoding\\coding-pages\\tag3 /s /e /Q /Y /I');
//2.執行批處理復制目錄
exec(execbat, function (err, stdout, stderr) {
if (err) {
console.log(err);
}
else{
console.log('復制成功');
}
});
//3.刪除批處理文件
exec('del ' + execbat, function (err, stdout, stderr) {
if (err) {
console.log(err);
}else{
console.log('刪除腳本成功');
}
})
- 啥?怎么提交到git
運行環境安裝好。能從cmd命令提交(配置環境變量)
然后,看代碼唄~~
var cmds = [
'git add *',
'git commit -m "提交。。。"',
'git push'
]
cmds.forEach(function (cmd, i) {
setTimeout(function () {
console.log(cmd);
exec(cmd, function (err, stdout, stderr) {
if (err) {
console.log(err);
}
});
}, i * 1000);
})
寫文章還是挺累的。但是把用到的東西記錄下來是有必要的。文筆欠佳,然記錄一二也是挺好滴。
源碼地址:https://coding.net/u/yimocoding/p/yimocoding/git/blob/coding-pages/index.js