[英]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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.