首先感谢作者的分享,很赞这里记录下编码遇到的问题,这里只针对 sever 进行了验证。有同样遇到问题的童鞋,可以作为参照本地环境:Node: v10.13.0OS: window 7npm: 6.4.1问题一(mongoose相关)问题描述:DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.解决方案:mongoose.connect(config.dbUri, { useCreateIndex: true, useNewUrlParser: true})或者mongoose.set(‘useCreateIndex’, true)mongoose.connect(config.dbUri, { useNewUrlParser: true })对应的源码文件 kendou-book/book-server/server/database/init.js,涉及修改的代码如下:…+ var opts = {+ useCreateIndex: true,+ useNewUrlParser: true+ };- mongoose.connect(db);+ mongoose.connect(db, opts);问题描述:DeprecationWarning: collection.count is deprecated 解决方案:底层的mongodb驱动程序已弃用.count()方法。您应该使用.estimatedDocumentCount()或.countDocuments()代替。对应的源码文件 kendou-book/book-server/server/tasks/runninng.js,涉及修改的代码如下:… // 激活爬数据 为下一次服务await taskBook(item.bookId)let count = await Chapter.find({ bookId: item.bookId- }).count()+ }).countDocuments()问题二(puppetter 相关)问题描述:ERROR: Failed to download Chromium r588429! Set “PUPPETEER_SKIP_CHROMIUM_DOWNLOAD” env variable to skip download.解决方案:vi .npmrctype puppeteer_download_host = https://npm.taobao.org/mirrorsyarn add puppeteer -D or npm i puppeteer –save-dev问题描述:(node:19996) UnhandledPromiseRejectionWarning: TimeoutError: Navigation Timeout Exceeded: 30000ms exceeded解决方案:对应的源码文件 kendou-book/book-server/server/crawler/book.js,涉及修改的代码如下:… console.log(‘bookkkk:’, browser) const page = await browser.newPage() await page.goto(url, { waitUntil: ’networkidle2’,+ timeout: 3000000 })对应的源码文件 kendou-book/book-server/server/crawler/chapter.js,涉及修改的代码如下: … const page = await browser.newPage() await page.goto(url, { waitUntil: ’networkidle2’,+ timeout: 3000000 })问题三(源码瑕疵)问题描述:定义 book 的 schema 的时候,字段(author)拼写错误解决方案:对应的源码文件 kendou-book/book-server/server/database/schema/book.js,涉及修改的代码如下:…- auhtor: { type: String},+ author: { type: String},对应的源码文件 kendou-book/book-server/server/crawler/book.js,涉及修改的代码如下:…let result = await page.evaluate(() => { return { headImg: document.querySelector(’.story_cover_m62topxs img’).getAttribute(‘src’), name: document.querySelector(’.info_left_m62topxs h1’).innerText,- auhtor: document.querySelector(’.info_left_m62topxs h2 a’).innerText,+ auhtor: document.querySelector(’.info_left_m62topxs h2 a’).innerText, chapterNum: document.querySelectorAll(’.cp_dd_m62topxs’).length } })参考链接:mongoose相关mongoose相关puppetter安装就踩坑-解决篇