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
,我们发现在文件名中的点之后的所有模板path的devise都应该被认为是扩展名:
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', function(req, res){ res.render('view.sample.ejs'); })
- 如何使用koa-bodyparser在koa中获取查询string?
- 添加到Node.js express-session的variables在下一个请求中是未定义的
- Express 3.0 + Everyauth + HTTPS
- Mongoose更新文档或插入新文档如果没有findID(Express REST API)
- Node.js,express,jade,highcharts和2D数组
- 如何在express.js中的JSON文章中捕获错误
- 如何使用Express.js正确设置单页应用程序的路线?
- Feathersjspipe理员angular色(或用auth检查羽毛中间件)
- 从node.js / express传递数组到jade模板