【问题标题】:How to use Javascript Variables in Jade Template?如何在 Jade 模板中使用 Javascript 变量?
【发布时间】:2015-12-05 20:24:35
【问题描述】:

我正在使用 IBM Bluemix 为学校项目制作 Web 服务。

我的项目需要从 API 请求 JSON,所以我可以使用它提供的数据。

我希望 Jade 模板使用来自 API 的数据编写字符串,但我不能使用我的 .js 文件中定义的变量。

例如,我想写

"您的汇率是"+CotacaoDolar

在jade文件的h1字段中,是“CotacaoDolar”一个在.js文件中定义的变量。

这是怎么做到的?

这是我的 .js 文件:

/*eslint-env node*/

//------------------------------------------------------------------------------
// node.js starter application for Bluemix
//------------------------------------------------------------------------------

// HTTP request - duas alternativas
var http = require('http');
var request = require('request');

// cfenv provides access to your Cloud Foundry environment
// for more info, see: https://www.npmjs.com/package/cfenv
var cfenv = require('cfenv');

//chama o express, que abre o servidor
var express = require('express');

// create a new express server 
var app = express();

// serve the files out of ./public as our main files
app.use(express.static(__dirname + '/public'));

// get the app environment from Cloud Foundry
var appEnv = cfenv.getAppEnv();

// start server on the specified port and binding host
app.listen(appEnv.port, '0.0.0.0', function() {
    // print a message when the server starts listening
    console.log("server starting on " + appEnv.url);
});


app.get('/home1', function (req,res) {
    http.get('http://developers.agenciaideias.com.br/cotacoes/json', function (res2) {
        var body = '';
        res2.on('data', function (chunk) {
            body += chunk;
        });
        res2.on('end', function () {
            var json = JSON.parse(body);
            var cotacao = json["bovespa"]["cotacao"];
            var CotacaoDolar = json["dolar"]["cotacao"];
            var VariacaoDolar = json["dolar"]["variacao"];
            var CotacaoEuro = json["euro"]["cotacao"];
            var VariacaoEuro = json["euro"]["variacao"];
            var Atualizacao = json["atualizacao"];
			
			res.render('cotacao_response.jade', {
                 message: 'A taxa de câmbio é de '+CotacaoDolar+' R$.Esse valor corresponde ao preço de venda em '+Atualizacao
            });
        });
    });
});

这是我的 .jade 文件:

doctype html
html(lang="en")
  head
    title Cotação 
    link(rel='stylesheet',href='stylesheets/style.css')
  body
    h1!=message
    #container.col
      p Seu câmbio foi.
      p.
        

【问题讨论】:

    标签: javascript node.js express pug ibm-cloud


    【解决方案1】:

    您只需要在渲染包含变量的模板时传入一个对象。然后可以通过引用 Jade 模板中的键来访问该值。因此,要发送您的变量“CotacaoDolar”,您可以这样传递对象:

    res2.render('cotacao_response.jade', {
        'CotacaoDolar': CotacaoDolar
    });
    

    然后在您的 Jade 模板中,您可以创建 h1 之类的:

    h1 Your exchange rate is #{CotacaoDolar}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多