對于服務端渲染的,要決議html,安裝cheerio
npm init npm install cheerio --registry=http://registry.npm.taobao.org
var fs = require('fs'); var cheerio = require('cheerio'); var myHtml = fs.readFileSync("a.html"); var $ = cheerio.load(myHtml); var t = $('html').find('hr'); var t2 = t.nextAll(); t2.each(function(i, elem) { getContent($(this)); console.log($(this).text()); // .text()報錯,用.children[0].data });
參考:
https://cheerio.js.org/
https://www.jianshu.com/p/629a81b4e013
DOM節點選擇參考:https://blog.csdn.net/fbysss/article/details/54798229
NaN處理:
// ES5 isNaN(NaN) //true isNaN(undefined) //true isNaN('qwer') //true isNaN(123) //false //ES6 Number.isNaN(undefined) //false Number.isNaN(NaN) //true Number.isNaN('qwer') //false Number.isNaN(123) //false
參考:https://blog.csdn.net/clydekuo/article/details/54929081
mysql 逐條插入與批量插入
let insertSqlOne = 'INSERT INTO table(id, c_id, name, add, s, create_time, deleted) VALUES (0,2,?,?,?,?,0)' // one record let insertSqlBatch = 'INSERT INTO table(id, c_id, name, add, s, create_time, deleted) VALUES ?' // many record var insertParamsOne = [] var insertParamsBatch = [] c_time = moment().format('YYYY-MM-DD HH:mm:ss') // one by one nameList.each((index, item) => { insertParamsOne = [ 0, TARGET_ID, hn, ha, Number(hs), c_time, 0 ] mysqlConnection.query(insertSql, insertParamsOne, (error, result) => { if(error) { console.log('[INSERT ERROR] - ', error.message) return } console.log('存入資料庫: ' + result.affectedRows + '條記錄') }) }) // batch nameList.each((index, item) => { var hn = item.children[0].data var ha = addList[index].children[0].data var hs = sList[index].children[0].data insertParamsBatch.push([ 0, TARGET_ID, hn, ha, Number(hs), c_time, 0 ]) }) mysqlConnection.query(insertSqlBatch, [insertParamsBatch], (error, result) => { if(error) { console.log('[INSERT ERROR] - ', error.message) return } console.log('存入資料庫: ' + result.affectedRows + '條記錄') })
mysql插入前判斷:
如下,新插入的資料為第二行SELECT后的內容,判斷條件為WHERE NOT EXISTS括號中內容,
如果判斷條件查處資料,則不插入,否則,插入新資料,
INSERT INTO x_table (c_id, name, add, s, deleted) SELECT 2, 'namexxx', 'addxxx', 3, 0 FROM DUAL WHERE NOT EXISTS ( SELECT c_id, name, add, s, deleted FROM x_table where c_id=2 AND name='namexxx' AND deleted = 0 )
let insertSql = 'INSERT INTO x_table(c_id, name, add, s, deleted, create_time) SELECT ?,?,?,?,?,? FROM DUAL WHERE NOT EXISTS(SELECT c_id, name, add, s, deleted FROM x_table WHERE c_id = ? AND name = ? AND deleted = ?)' var insertParams = [] c_time = moment().format('YYYY-MM-DD HH:mm:ss') // insertParams = [] xList.forEach((item, index) => { insertParams = [ TARGET_ID, item.name, item.add, Number.isNaN(Number(item.s)) ? null : Number(item.s), 0, c_time, TARGET_ID, item.name, 0 ]
mysqlConnection.query(insertSql, insertParams, (error, result) => { if(error) { console.log('[INSERT ERROR] - ', error.message) return } console.log('存入資料庫: ' + result.affectedRows + '條記錄') }) })
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/201096.html
標籤:其他
