[英]Failed to lookup view in node express for jade
I'm using Jade template engine to replace to replace my variables:; 我正在使用Jade模板引擎来替换以替换我的变量: I have tried the following:
我尝试了以下方法:
var express = require('express');
var jade = require('jade');
var router = express.Router();
router.get('/test', function (req, res, next) {
var html= res.render(jade.renderFile('test', {"message": "test1", "title": "test2"}));
res.render(html);
});
module.exports = router;
and the following is my test.jade: 以下是我的test.jade:
html
head
title= title
body
h1= message
But I keep the folowing error: 但我保留以下错误:
message: 信息:
> "Failed to lookup view
> "<html><head><title>test2</title></head><body><h1>test1</h1></body></html>"
> in views directory "C:\node\myProj\views"",
Alos here is my setup for jade in my app.js: 这是Alos在我的app.js中设置的玉器:
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.engine('jade', require('jade').__express);
So what am I doing wrong? 那我在做什么错? Any help is appreciated...
任何帮助表示赞赏...
UPDATED to use res.render: 更新为使用res.render:
Updated to use app.render: 更新为使用app.render:
So I changed my route to: 因此,我将路线更改为:
var express = require('express');
var router = express.Router();
var app;
module.exports = function (_app) {
app = _app;
return router;
}
router.get('/test', function (req, res, next) {
app.render('test', {"message": "test1", "title": "test2"}, function(err, html){
res.render(html);
});
});
and now I'm caling in this way in app.js: 现在我在app.js中以这种方式进行校准:
var test = require('./routes/test');
app.use(test(app));
Now it gives me: 现在它给了我:
> "Failed to lookup view
> "<html><head><title>test2</title></head><body><h1>test1</h1></body></html>"
> in views directory "C:\node\myProj\views""
Although res.render works fine: 尽管res.render可以正常工作:
res.render('test', {"message": "test1", "title": "test2"});
Looks like you are close but your request handler needs slight adjustment: 看起来您很亲密,但您的请求处理程序需要稍作调整:
router.get('/test', function (req, res, next) {
res.render('test', {"message": "test1", "title": "test2"}));
});
res.render
is now smart enough to do your jade for you res.render
现在足够聪明,可以为您做玉器 ./views
prefix and .jade
suffix again because express now understands these as defaults ./views
前缀和.jade
后缀,因为express现在将它们理解为默认值 jade
in your router file anymore jade
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.