繁体   English   中英

如何将变量从Express传递到Jade

[英]How to pass a variable from Express to Jade

我正在使用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. 

您一开始没有设置它。 它使它更容易

app.set('view engine', 'jade');

在渲染时:

res.render('cotacao_response', {
   'UsdValue':UsdValue,
   'TimeOfUpdate':TimeOfUpdate,
   'UsdVariation':UsdVariation
});

为了上帝的缘故。 使用另一个模板引擎。 从我的角度来看,由于缩进和1空格填充,Jade非常令人不安。 如果发生一些小错误,它将花费大量时间,并且您必须从上到下再次执行该操作。 谁喜欢那个?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM