Express + Jade给我语法错误

时间:2013-02-10 13:19:13

标签: express pug

我第一次使用Jade + Express,只是玩它来看看可以做些什么。

我使用Brian Fords seed app作为我学习的基础,也是第一次使用Jade(模板引擎)。

但是,当我尝试写出一个新的index.jade文件时,Express会一直给我语法错误或缩进标记错误。

这里是我试图使用的代码。

doctype 5
   html(lang="en" ng-app="myApp")
   head
     meta(charset='utf8')
     base(href='/')
     link(rel='stylesheet' href='/css/app.css')
     title= pageTitle
   body
     block body

任何帮助将不胜感激:)

修改

给出的错误是:

500 Error: /Users/Keva161/Documents/Web Dev/Webapps/Node/angular-express-seed/views/layout.jade:2 1| doctype 5 > 2| html(lang="en" ng-app="myApp") 3| head 4| meta(charset='utf8') 5| base(href='/') unexpected token "indent"
1| doctype 5
> 2| html(lang="en" ng-app="myApp")
3| head
4| meta(charset='utf8')
5| base(href='/')
unexpected token "indent"
at Object.Parser.parseExpr (/Users/Keva161/Documents/Web Dev/Webapps/Node/angular-express-seed/node_modules/jade/lib/parser.js:241:15)
at Object.Parser.parse (/Users/Keva161/Documents/Web Dev/Webapps/Node/angular-express-seed/node_modules/jade/lib/parser.js:134:25)
at Object.Parser.parse (/Users/Keva161/Documents/Web Dev/Webapps/Node/angular-express-seed/node_modules/jade/lib/parser.js:140:24)
at parse (/Users/Keva161/Documents/Web Dev/Webapps/Node/angular-express-seed/node_modules/jade/lib/jade.js:100:62)
at Object.exports.compile (/Users/Keva161/Documents/Web Dev/Webapps/Node/angular-express-seed/node_modules/jade/lib/jade.js:163:9)
at Object.exports.render (/Users/Keva161/Documents/Web Dev/Webapps/Node/angular-express-seed/node_modules/jade/lib/jade.js:215:17)
at View.exports.renderFile [as engine] (/Users/Keva161/Documents/Web Dev/Webapps/Node/angular-express-seed/node_modules/jade/lib/jade.js:243:13)
at View.render (/Users/Keva161/Documents/Web Dev/Webapps/Node/angular-express-seed/node_modules/express/lib/view.js:75:8)
at Function.app.render (/Users/Keva161/Documents/Web Dev/Webapps/Node/angular-express-seed/node_modules/express/lib/application.js:505:10)
at ServerResponse.res.render (/Users/Keva161/Documents/Web Dev/Webapps/Node/angular-express-seed/node_modules/express/lib/response.js:717:7)

3 个答案:

答案 0 :(得分:2)

我认为jade正在将你的html解释为doctype。而不是!

doctype 5
html(lang="en" ng-app="myApp")
 head
   base(href='website.domain/url')
   link(rel='stylesheet', href='css/app.css', type='text/css')
   title pageTitle
 meta(http-equiv="content-type", content="#{contentType}; charset=UTF-8")
 body

还不确定block body的用途是什么?! 当您使用其他视图文件并将文本附加到布局文件时,将使用AFAIK block body

答案 1 :(得分:1)

  

html(lang =“en”ng-app =“myApp”)

您可能需要添加逗号,如此

html(lang =“en”,ng-app =“myApp”)

答案 2 :(得分:0)

您的代码应如下所示

doctype html
html(lang="en" ng-app="myApp")
    head
        meta(charset='utf8')
        base(href='/')
        link(rel='stylesheet' href='/css/app.css')
        title= pageTitle
    body
        block body
  1. 你不应该在doctype
  2. 中缩进html标签
  3. 你必须在html标签内缩进body和head标签