[英]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.