本文收录了笔者 Node.js 使用开发开发中遇到的各种错误,解决后第一时间把症状、解决方案、解决思路卸载这里,有空的话还会分析补上引发错误的原因。
错误太多,如果遇到疑难杂症,请使用导航栏的 搜索 功能试试。
主要是错误及思考,持续更新中。
Hexo Next 升级分页出现问题
环境
- 系统: macOS 10.13.6
- Node 版本: v12.13.1
错误信息
意外升级 Hexo 后 Next 主题的上一页、下一页分页按钮显示为代码:
<i class="fa fa-angle-left" aria-label="上一页"></i> |
如果编辑 HTML 会发现该部分显示为实体:
<i class="fa fa-angle-left" aria-label="上一页"></i> |
解决方法
- 降级 hexo 到没有问题的版本
- 或者升级 next 主题到没有问题的版本。
我是托管在 Github 上的,通过查看 package.json 发现没有出问题之前 hexo 版本是 3.8.0,next 版本是 7.0.0
错误原因
hexo 与 next 版本兼容问题
Nodejs &#x 开头 unicode cheerio 乱码
环境
- 系统: macOS 10.13.6
- Node 版本: v12.13.1
错误信息
Node.js 使用 axios 下载网页,使用 cheerio 抓取数据时,得到的中文是乱码(unicode)以 &#x
开头
解决步骤
一开始以为是网页编码问题,后面在 axios 请求结果中输出也不是乱码的,最后定位到 cheerio 中。
var $ = cheerio.load("<h1><p>你好</p><em>Hello,World!</em></h1>"); |
解决方法
治标不治本,利用库进行编码转换:
var he = require('he'); |
治标:
cheerio 本身默认是转实体的,参考cheerio html 方法中文字体被转换问题,求教
cheerio.load(html,{ decodeEntities: false }); |
错误原因
cheerio 的问题
node-sass 安装失败
环境
- 系统: macOS 10.13.6
- Node 版本: v12.13.1
- node-sass 版本: 4.13.1
错误信息
/node_modules/node-sass: Command failed. |
解决步骤
一开始按照常规的 node-sass 安装错误
关键字进行搜索,都是比较老的安装失败、安装错误等信息,要么是网络、要么是 node 版本。
还有一个 stackoverflow 的回答 最为接近,在 node-sass 发行文档中,它列出了对于 Node v12,需要安装 node-sass v4.12 及更高版本。
但是这个答案也被排除。最后逐行找错误,发现关键错误行:
ERROR:root:code for hash md5 was not found.
初步怀疑是 openssl 问题,果然一搜就解决了。
解决方法
取消链接 openssl:
brew unlink openssl |
重新安装 python:
brew reinstall python@2 |
详细去 stackoverflow 搜索。
错误原因
分析不出来,前端时间折腾过 openssl