换了新公司,没什么时间写博客了。最近看到抖音那么火,心想着是否是要作个“抖图”,就这样,拖拖拉拉就开始干了。一个多月了,终于有成果了。前端
技术方面难度不到,就不上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