換了新公司,沒什麼時間寫博客了。最近看到抖音那麼火,心想着是否是要作個「抖圖」,就這樣,拖拖拉拉就開始幹了。一個多月了,終於有成果了。前端
技術方面難度不到,就不上github地址了。貼幾段看看就好。node
① nodejs、mysql 分頁查詢mysql
/** * @description 分頁查詢 * @param {number} pageNo 一頁多少條 * @param {number} pageSize 多少頁 */ function funcSelectImgs(pageNo, pageSize) { let promise1 = new Promise((resolve) => { let SQLSelect = `select * from girl_img_tbl limit ${(pageNo - 1) * (pageSize)}, ${pageSize};` connection.query(`${SQLSelect}`, function (error, results, fields) { if (error) throw error; let arr1 = [] results.map((item, index, arr) => { arr1.push(item.girl_img_url) }) resolve(arr1) }) }); let promise2 = new Promise((resolve) => { let SQLSelect = `select count(*) from girl_img_tbl;` connection.query(`${SQLSelect}`, function (error, results, fields) { if (error) throw error; resolve(results); }); }) return Promise.all([promise1, promise2]); }
② 爲了反防盜鏈,使用nodejs轉發圖片請求,使用request庫react
var options = { url: str, headers: { 'Referer': 'targetUrl' } }; request(options) .on('error', function (err) { console.log(err) }) .pipe(res);
③ 在react中使用swipergit
if (this.swiper) { this.swiper.slideTo(0, 0) this.swiper.destroy(); this.swiper = null; } this.swiper = new Swiper(this.refs.lun, { direction: 'vertical', lazy: { loadPrevNext: true, loadPrevNextAmount: 2 }, }); } ... // render方法中使用 <div className="swiper-container" ref='lun'> <div className="swiper-wrapper"> {arrImgUrls.map((urlItem, index, arr) => { return ( <div className="swiper-slide swiper-lazy imgBox" key={urlItem + index} data-id={index} data-background={`${urlItem}`} onClick={()=>{this.handleImgClick(urlItem)}}> <div className="swiper-lazy-preloader"></div> </div> ) })} </div> </div>
剛纔有提到爲了反防盜鏈,我用個人nodejs服務器轉發圖片請求。個人是1M的騰訊雲服務器,轉發圖片速度太慢了。昨天升級到了10M,兩天時間就要36塊錢,太貴了。github
貼上連接吧,http://115.159.47.17:8081/ 我沒買域名,直接用的ip地址。估計明天就限速了,我就升級了兩天時間8月8號和8月9號。不過如今也能打開,不過會很慢。看你們需求吧,若是有喜歡的話,私信我,我看是繼續升級帶寬,仍是換家服務器廠商。sql