在Javascript Express应用程序中进行http调用

Make http call from within Javascript Express app

本文关键字:http 调用 Javascript Express 应用程序      更新时间:2023-09-26

我正在构建一个express (http://expressjs.com/)应用程序,它将通过解析另一个网页创建API。下面是我创建路由的方法:

app.get('/api/json', test.jsonParser);

这是我的jsonParser方法:

exports.jsonParser = function(req, res) {
    var client = new XMLHttpRequest();
    client.open('GET', smhiURL);
    client.onreadystatechange = function() {
        if (client.readyState == 4 && client.status == 200) {
            if (client.responseText) {
                res.render('hello', { message: 'Congrats, you just set up your app!' });
            } else {
                res.status(404).send("Page not found.");
            }
        }
    }
    client.send();
}

我在onreadystatechange中发送的消息只是使用默认模板,所以我可以测试是否一切正常,但它不是,我得到NetworkError: 500 Internal Server Error

知道为什么这个不工作吗?我猜有一些异步问题,但是,render方法被调用到晚…,但没有找到更好的方法来处理express内部的请求。

使用https://www.npmjs.com/package/request和管道输出响应。

注意: XMLHttpRequest's通常限制在同一个源。