![](/img/trans.png)
[英]Uncaught TypeError: Cannot read property 'nameOfCity' of null at App.render
[英]app.render [TypeError: Cannot set property 'content' of undefined] Using Express with Gaikan in Node.js
res.render運行完美:
res.render('main', function(err, html){
// Returns '<html></html>' contained inside of 'views/main.html'
console.log(html);
});
但是我的app.render:
app.render('main', function(err, html){
// Returns undefined
console.log(html);
});
app.render返回的錯誤是:
[TypeError: Cannot set property 'content' of undefined]
我假設它正在嘗試設置data.content(屬於Gaikan),但是我不確定,也不知道問題出在哪里。
幫助將不勝感激。
堆棧跟蹤: http : //puu.sh/5qGSq.png
配置:
var express = require('express'),
gaikan = require('gaikan');
app.configure(function() {
app.engine('html', gaikan);
app.set('view engine', 'html');
app.set('views', __dirname + '/views');
gaikan.options.scoped = true;
});
如上所述,模板只是<html></html>
。
我認為這是Gaikan做出的假設不正確的問題,即,傳遞給render函數的options
參數始終包含_locals
屬性。
查看Express代碼,只有在調用res.render()
時,該屬性才能保證存在,但是當您調用app.render()
您需要在Gaikan工作之前自己明確地傳遞它:
app.render('main', { _locals : {} }, function(err, html) { ... });
我之所以無法復制它,是因為僅當gaikan.options.scoped === true
時才會出現此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.