【问题标题】:Understanding routing from client side (javascript) to server side (node.js)了解从客户端(javascript)到服务器端(node.js)的路由
【发布时间】:2016-12-31 22:10:36
【问题描述】:

我是网络应用程序的新手,目前我正试图围绕从客户端到服务器端和返回的路由。我遇到了一个问题,我在客户端执行 xmlhttprequest 以获取 json,它正在工作。但是现在我没有在本地运行,没有一个GETS在工作。所以我想我必须路由到服务器端,执行 request() 来获取 json,我可以。

但现在我不明白的是如何将该 json 传递回客户端以在那里使用该函数,因为我所有使用该 json 的函数都在那里。这可能吗?还是我现在必须在服务器端做所有事情?

服务器端

server.get('thankyou.html/something', function(req, res) {

    var options = {
        url: 'https://**.***.**.**:****/****/*******/',
        rejectUnauthorized: false,   
        method: 'GET'
    };

    request(options, function (error, response, body) {
        if (error) console.log(error);
        else displaytable(body);//<------- clientside funtion
    });
});

客户端

var uri = 'thankyou.html/something';

function addTable() {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4 && (xhr.status == 201 || xhr.status == 200)) {
           // var json = JSON.parse(xhr.responseText);
            displaytable(json);
        }

    };
    xhr.open("GET", uri, true);
    xhr.send();
}

我认为我的路由也不正确。

【问题讨论】:

    标签: javascript json node.js routing


    【解决方案1】:

    这里的预期流量是多少?客户端 -> 你的服务器 @thankyou.html/something -> 其他一些服务器 url(你已经审查的那个) -> 响应返回到你的服务器 -> 响应返回给客户端 -> 客户端使用响应来显示表格?

    无论哪种方式,您都绝对不能从您的服务器调用客户端函数。反正不是这样的。您需要使用res.json(body) 之类的东西返回body(您使用的是什么路由/服务器库?),然后解析xhr.responseText,就像您注释掉的行所做的那样。然后您将在客户端获得 json,并且可以按预期继续。

    确保您的request 调用是否返回错误并将错误传递给客户端,否则它将挂起直到超时。

    【讨论】:

    • 这正是我想要做的。我不使用任何路由库,但我很确定你的意思是如果我使用 express 库对吗?我想我理解你所解释的过程。
    • 是的,如果您使用的是express,我需要知道这一点。当您使用 express 时,您可以调用 res.json(object) 将对象作为 json 返回给客户端响应,然后可以像您考虑的那样对其进行解析。这是做你想做的事情的“正确”方式(假设来自request(options...的正文包含你在客户端上寻找的数据,无论如何)。
    • 我认为我在客户端的 uri 值不正确。我怎么知道在那里使用什么?
    • 哦,这取决于你如何暴露你的服务器。 Express 通常会有类似server.listen(8080) 的东西,其中8080 将是端口。因此,以此为例,并假设您的开发服务器位于本地 IP 127.0.0.1 上,您将使用 var uri = "127.0.0.1:8080/thankyou.html/something;。在这一点上,您可能会看到,与将其发布到具有非本地 IP 的服务器时相比,您在开发时需要一些方法来使 url 有所不同。需要记住的一点。
    • 我的 uri 差不多就是这样,我想我还有很多学习要做!谢谢@dvlsg
    猜你喜欢
    • 2016-09-24
    • 2014-05-04
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    相关资源
    最近更新 更多