javascript - 如何在 Jade 模板中使用 Javascript 变量?

标签 javascript node.js express pug ibm-cloud

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

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

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

例如,我想写

"Your Exchange Rate is"+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.
        

最佳答案

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

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

然后在您的 Jade 模板中您可以创建 h1,如下所示:

h1 Your exchange rate is #{CotacaoDolar}

关于javascript - 如何在 Jade 模板中使用 Javascript 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34110444/

相关文章:

javascript - 如何使用旧数组中的数据创建一个新数组?

javascript:检查复杂对象是否在数组中

node.js - 如何在puppeteer中查找 Node 的所有子 Node

javascript - 如何修复 spawn ENAMETOOLONG 错误 nrwl nx 工作区

javascript - 为什么不能使用这种 promise 语法快速发送?

mysql - Node.js-将多个对象传递到同一EJS文件

javascript - 将 div 垂直置于父级中间

javascript - 使用 ramda.js 获取嵌套对象数组中某个键的所有值

Node.js Sequelize 返回日期减去 1 天

javascript - 有没有办法可以根据用户事件(例如评论)增加模型中的值?