node.js – Express.js res.render点名文件

前端之家收集整理的这篇文章主要介绍了node.js – Express.js res.render点名文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在express.js中的res.render()上使用点命名文件
例如,

有一个名为view.sample.ejs的模板文件,我想渲染它

app.get('/sample',function(req,res){
    res.render('view.sample');
})

结果是,

Error: Cannot find module 'sample'

我怎么用点?

(加)

我想命名跟随mvc模型,就像

sample.model.js
sample.controller.js
sample.view.ejs
sample.view.update.ejs ...

没有问题js文件,但渲染ejs文件我不能.

解决方法

如果我们查看库node_modules / express / lib / view.js,我们发现模板路径的设计应该被视为扩展名:
this.ext = extname(name); // 'view.sample' => '.sample'
this.name = name;         // 'view.sample' => 'view.sample'

当我们尝试加载相应的文件扩展引擎时会产生错误

if (!opts.engines[this.ext]) { // '.sample' engine not found
  // try load engine and throw error
  opts.engines[this.ext] = require(this.ext.substr(1)).__express;
}

好的,该怎么办?只需添加扩展名:

app.get('/sample',res){
  res.render('view.sample.ejs');
})

猜你在找的Node.js相关文章