【问题标题】:Error In Rendering Jade Files渲染 Jade 文件时出错
【发布时间】:2012-01-01 07:35:48
【问题描述】:

渲染 Jade 文件时出现错误。我在 app.js 中使用的代码是:

app.get('/photos/new' function(req, res) {
      res.render('/photos/new', {
        locals: {
          photo: new Photo()
        }
      });
    });

对应的Jade文件是:

h1 New Photo
form(action='/photos', method ='post', enctype ='form-data')
  != partial('../partials/photo_form', { locals: { photo: photo}})
  p
    input(type = 'submit')

但我收到一条错误消息,说照片未定义。我不知道我在哪里做错了。请帮忙。

【问题讨论】:

    标签: mongodb node.js express mongoose pug


    【解决方案1】:

    局部中的本地人是隐含的,所以试试这个:

    != partial('../partials/photo_form', {photo: photo})
    

    【讨论】:

      【解决方案2】:

      进行部分包含时,它指的是视图所在的当前目录..

      所以您呈现的响应来自:

      /views/photos/new.jade

      对吗? 所以部分包含在 new.jade 文件中.. 这意味着如果你这样做

      partial('../partials/photo_form',{'whatever':'whatever'})

      它正在寻找:

      /views/partials/photo_form.jade

      这是你所期待的吗? 因为如果它在

      /views/photos/photo_form.jade

      只做partials('photo_form',{'whatever':'whatever'})

      它会默认为父视图所在的目录。 http://expressjs.com/guide.html

      并检查视图查找

      干杯

      【讨论】: