如何在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 ...
解决方法
如果我们查看库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'); })