如何在服务器上运行多行javascript?

时间:2013-07-01 14:20:53

标签: node.js pug

我正在尝试使用以下代码与jade

extends ../display

- var mProximoAtendimento = moment(), tempoAtraso;
- if (model.ProximoAtendimento) {
-   mProximoAtendimento = moment(model.ProximoAtendimento, "YYYYMMDDHHmmss");
-   if (model.ProximoAtendimento.isValid() && moment().toDate() > model.ProximoAtendimento.toDate())
-      tempoAtraso = mDate.fromNow();
- }

block content
    .page-header
        h1= model.Nome
            |  
            small= model.Titulo

    - if (tempoAtraso)
        #{tempoAtraso}
    - else
        | #{mProximoAtendimento.fromNow()}

但是显示错误:

500 TypeError: /var/lib/stickshift/XXXX/app-root/data/544682/views/contatos/detalhes.jade:19 17| #{tempoAtraso} 18| - else > 19| | #{mProximoAtendimento.fromNow()} Cannot call method 'fromNow' of undefined

model.ProximoAtendimento中的值是 2013-06-29 09:58:55

1 个答案:

答案 0 :(得分:0)

当对象在模板引擎中不可用时,您将收到此错误。

在您的主要node.js文件(app.js,server.js或根文件中的任何一个)中,您需要为mDate和moment对象添加此文件:

app.locals.mDate = mDate;
app.locals.moment = moment;

我发现模板在不需要进行数据计算时渲染速度更快,因此我们已将此类代码尽可能地转移到了路由中。