node:express:error---填坑之路

express版本4.0之后需要安装的东西

npm install -g express
npm install -g express-generator

jade转换成ejs(修改为html引擎,打开app.js ,若ejs引擎就不需要改动,但是所有html文件只可以sendFile,不能render将view engine的代码替换如下):

需要替换的:

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

方法一:

方法二:

app.engine('.html', require('ejs').renderFile);
app.set('view engine', 'html');

 注:如没有ejs依赖,请npm install ejs

 

关于Error: Failed to lookup view "error" in views directory "D:\WebProgram\webBlog\views"的解决方法:

运行nodejs,发现有这个错误:

Failed to lookup view "error" in views directory

这个错误是因为我们配置了html模板,而之前是用的jade,所以后台出错后会去找error.jade,但此时这个模块已经不存在了,所以不可用,查找不到。

如何解决这个问题,其实很简单,在views里新建一个error.html,就不会抛出异常了。

但这样不会解决根本问题,错误无法捕获

//app.js
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

app.js里是这段代码进行的错误捕获,所以,如果简单点的话,直接在这里面把错误打印出来即可

//app.js
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  console.log(err.message);
  
});

这样,就能成功打印出错误信息了

 

posted @ 2017-10-17 16:15  One-People  阅读(718)  评论(0编辑  收藏  举报