Нод рендер json в ejs работает, но иногда выдает ошибки - PullRequest
0 голосов
/ 26 апреля 2019

Если вызывается путь "/", я собираю некоторые данные через RPC из процесса Python, который работает очень хорошо.Я хочу использовать этот объект JSON для отображения некоторых значений в HTML (ejs).На самом деле это работает, но иногда я получаю следующую ошибку:

temperature is not defined

Итак, что у меня есть:

app.get('/', function(req, res) {
  client.invoke("data", function(error, data, more) {
    // console.log(data): {"temperature": "12", "minTemperature": "1", "maxTemperature": "101"}
    data = JSON.parse(data);
    // console.log(data): { temperature: '12', minTemperature: '1', maxTemperature: '101' }
    res.render('index', data);
  });
});

Как отобразить значение в файле .ejs:

 <h4 id="temperature"><%- temperature %> °C</h4>

Итак, с этим JSON.parse я получил его на работу.Так что проблема в том, что в Chrome это всегда выдает мне эту ошибку.В Firefox это работает, но если я нажимаю CTRL + F5, это выдает эту ошибку.(F5 только работает).Самое смешное, что даже если появляется ошибка, температура отображается правильно.Через несколько часов мне нужна ваша помощь ...

Ошибка:

temperature is not defined
    at eval (eval at compile (/home/dominik/Schreibtisch/picam>/node/node_modules/ejs/lib/ejs.js:618:12), <anonymous>:37:17)
    at returnedFn (/home/dominik/Schreibtisch/picam/node/node_modules/ejs/lib/ejs.js:653:17)
    at tryHandleCache (/home/dominik/Schreibtisch/picam/node/node_modules/ejs/lib/ejs.js:251:36)
    at View.exports.renderFile [as engine] (/home/dominik/Schreibtisch/picam/node/node_modules/ejs/lib/ejs.js:482:10)
    at View.render (/home/dominik/Schreibtisch/picam/node/node_modules/express/lib/view.js:76:8)
    at Function.app.render (/home/dominik/Schreibtisch/picam/node/node_modules/express/lib/application.js:561:10)
    at ServerResponse.res.render (/home/dominik/Schreibtisch/picam/node/node_modules/express/lib/response.js:845:7)
    at /home/dominik/Schreibtisch/picam/node/server-tcp.js:50:7
    at callbacks (/home/dominik/Schreibtisch/picam/node/node_modules/express/lib/router/index.js:164:37)
    at param (/home/dominik/Schreibtisch/picam/node/node_modules/express/lib/router/index.js:138:11)

1 Ответ

0 голосов
/ 26 апреля 2019

Я думаю, вам нужно сделать data.temperature, так как вы вернетесь data не temperature

...