目录
一、node.js Cannot find module ‘html’
- 安装ejs
- 指定引擎加载html文件
var bodyParser = require('body-parser');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
// 创建 application/x-www-form-urlencoded 编码解析
var urlencodedParser = bodyParser.urlencoded({
extended: true
});
app.use(bodyParser.json());
二、Failed to lookup view “login.html” in views directory “E:\webWork\node-service\views”
- 文件目录结构如下
- 使用res.render(HTML文件)命令
- 指定views路径
app.set("views",path.join(__dirname,'views/'));
三、Error: Cannot enqueue Handshake after already enqueuing a Handshake.
at Protocol._validateEnqueue (E:\webWork\node-service\node_modules\_mysql@2.18.1@mysql\lib\protocol\Protocol.js:221:16)
at Protocol._enqueue (E:\webWork\node-service\node_modules\_mysql@2.18.1@mysql\lib\protocol\Protocol.js:138:13)
at Protocol.handshake (E:\webWork\node-service\node_modules\_mysql@2.18.1@mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (E:\webWork\node-service\node_modules\_mysql@2.18.1@mysql\lib\Connection.js:116:18)
at E:\webWork\node-service\src\main.js:36:14
at Layer.handle [as handle_request] (D:\Program Files\nodejs\node_global\node_modules\express\lib\router\layer.js:95:5)
at next (D:\Program Files\nodejs\node_global\node_modules\express\lib\router\route.js:137:13)
at E:\webWork\node-service\node_modules\_body-parser@1.19.0@body-parser\lib\read.js:130:5
at invokeCallback (E:\webWork\node-service\node_modules\_raw-body@2.4.0@raw-body\index.js:224:16)
at done (E:\webWork\node-service\node_modules\_raw-body@2.4.0@raw-body\index.js:213:7)
问题原因是: mysql调用时connect问题
四、TypeError: xxx is not a constructor 问题
无意中出现的报错,错误原因是申请了重复的变量作为同一个方法名。
例如:
function xxx(){
xxxxxx
}
var xxx = new xxx();
此时如果通过一些特定方式重复加载页面,比如我们用到的ajax请求页面后直接加载到已有dom中的方式,这时第一次加载没有任何问题,但是第二次加载就会出现如题报错。
此时:
修改var xxx = new xxx(); 为 var xxxx = new xxx(); 即可解决此问题。
本人没有更深入的研究,应该是后面定义的xxx覆盖了上面的构造函数xxx,你可以按照自己的实际情况,想想出现问题的原因。
原文链接:https://blog.csdn.net/sanai_1992/article/details/107625000