我正在使用IBM Bluemix为学校项目提供Web服务。
我需要将.js中的一些变量传递给.jade文件,但是这样做很麻烦。
我知道我必须声明一个包含变量的对象,然后使用
#{Variable}
在Jade模板中,但我无法弄清楚为什么这种方法不适用于我的代码。
这个问题的原因是什么?如何解决它?
这是我的.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 UsdValue = json["dolar"]["cotacao"];
var UsdVariation = json["dolar"]["variacao"];
var CotacaoEuro = json["euro"]["cotacao"];
var VariacaoEuro = json["euro"]["variacao"];
var TimeOfUpdate = json["atualizacao"];
res.render('cotacao_response.jade', {
'UsdValue':UsdValue,
'TimeOfUpdate':TimeOfUpdate,
'UsdVariation':UsdVariation
});
});
});
});

这是我的.jade代码:
doctype html
html(lang="en")
head
title Cotação
link(rel='stylesheet',href='stylesheets/style.css')
body
h1 Your exchange rate is #{UsdValue}.
h1 The variation was #{UsdVariation}%.
p The values were updated in !{TimeOfUpdate}.
#container.col
p
p.

答案 0 :(得分:3)
你没有在开始时设置它。它使它更容易
app.set('view engine', 'jade');
渲染时:
res.render('cotacao_response', {
'UsdValue':UsdValue,
'TimeOfUpdate':TimeOfUpdate,
'UsdVariation':UsdVariation
});
为了上帝的缘故。使用另一个模板引擎。由于压痕和1空间的东西,玉从我的观点来看非常令人不安。如果发生一些小错误,它会耗费大量时间,而且您必须再次从上到下进行此操作。谁喜欢那个?