使用Express路由将{j}文件传递给客户端

时间:2017-04-15 16:20:29

标签: javascript json express handlebars.js

我试图将json文件发送到客户端,但我没有这样做。我得到内部错误(500)。有人可以帮我吗?另外,我使用Handlebars作为视图引擎。

app.js:

[...]
var APIconditions = {};
var APIhourly = {};

function getWeatherData() {
    var data = ['/conditionsWU.json', '/hourlyWU.json'];
    request(data[0], function(err, res, body) {
        if (!err && res.statusCode == 200) {
            APIconditions = JSON.parse(body);
        }
    });
    request(data[1], function(err, res, body) {
        if (!err && res.statusCode == 200) {
            APIhourly = JSON.parse(body);
        }
    });
}
[...]

index.js:

[...]
router.get('/conditions' , function(req, res, next) {
    res.json(APIconditions);
});

router.get('/hourly' , function(req, res, next) {
    res.json(APIhourly);
});
[...]

client.js:

[...]
function getWeather() {
    var APIconditions = 'conditions';
    var APIhourly = 'hourly';

$.getJSON(APIconditions, function (data) {
    [...]
});
$.getJSON(APIhourly, function (data) {
        [...]
    });
[...]

1 个答案:

答案 0 :(得分:0)

您无法在未指定的情况下从其他文件访问APIconditionsAPIhourly

最简单的解决方案是将它们附加到全局范围,以便您可以从任何地方访问它们。

global.APIconditions = {}
global.APIhourly = {}