无法在 node express 中查找 jade 视图
Failed to lookup view in node express for jade
我正在使用 Jade 模板引擎来替换我的变量:;我尝试了以下方法:
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;
下面是我的 test.jade:
html
head
title= title
body
h1= 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 这是我 app.js:
中的玉石设置
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.engine('jade', require('jade').__express);
那我做错了什么?感谢任何帮助...
更新为使用 res.render:
已更新为使用 app.render:
所以我将路线更改为:
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);
});
});
现在我在 app.js 中以这种方式计算:
var test = require('./routes/test');
app.use(test(app));
现在它给了我:
> "Failed to lookup view
> "<html><head><title>test2</title></head><body><h1>test1</h1></body></html>"
> in views directory "C:\node\myProj\views""
尽管 res.render 工作正常:
res.render('test', {"message": "test1", "title": "test2"});
看起来你很接近,但你的请求处理程序需要稍微调整:
router.get('/test', function (req, res, next) {
res.render('test', {"message": "test1", "title": "test2"}));
});
- 因为你设置了视图引擎,
res.render
现在已经足够聪明,可以为你做玉
- 您也可以再次省略
./views
前缀和 .jade
后缀,因为 express 现在将这些理解为默认值
- 您也不再需要在路由器文件中要求
jade
我正在使用 Jade 模板引擎来替换我的变量:;我尝试了以下方法:
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;
下面是我的 test.jade:
html
head
title= title
body
h1= 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 这是我 app.js:
中的玉石设置app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.engine('jade', require('jade').__express);
那我做错了什么?感谢任何帮助...
更新为使用 res.render:
已更新为使用 app.render:
所以我将路线更改为:
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);
});
});
现在我在 app.js 中以这种方式计算:
var test = require('./routes/test');
app.use(test(app));
现在它给了我:
> "Failed to lookup view
> "<html><head><title>test2</title></head><body><h1>test1</h1></body></html>"
> in views directory "C:\node\myProj\views""
尽管 res.render 工作正常:
res.render('test', {"message": "test1", "title": "test2"});
看起来你很接近,但你的请求处理程序需要稍微调整:
router.get('/test', function (req, res, next) {
res.render('test', {"message": "test1", "title": "test2"}));
});
- 因为你设置了视图引擎,
res.render
现在已经足够聪明,可以为你做玉 - 您也可以再次省略
./views
前缀和.jade
后缀,因为 express 现在将这些理解为默认值 - 您也不再需要在路由器文件中要求
jade