将变量从路由nodejs发送到js文件

时间:2019-12-26 17:11:10

标签: node.js

routes.js中的这段代码。

    app.get('/home', function(req, res) {
    if (req.session.user == null){
        res.redirect('/');
    }   else{
        AM.getAllCategories( function(e, categories){
        res.render('home', {
            title : 'Control Panel',
            classification : CF,
            udata : req.session.user,
            categ : categories
        });
        })
    }
});

“ getAllCategories”函数将所有数据库数据放入类别中。 在将“ categ”变量发送到home之后,但是当我尝试在home.js中使用varibale时,varibale是未定义的。

如何将变量发送到home.js?

当我在home.pug中使用该变量时,它就起作用了。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

要将值发送到客户端,客户端首先必须请求数据。这是因为所有服务器-客户端关系都是基于请求和响应的。因此,为了让您将数据发送到home.js(在客户端),客户端必须将XML请求发送到route.js(服务器)。

这可以通过将以下代码添加到客户端来完成。

// you must call this function from home.js so that the server may send back the data.
function loadData() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        data = this.responseText; // This will be the variable that receives the data from the server
    }
  };
  xhttp.open("GET", "requestedURL", true);
  xhttp.send();
}

您可以在下面的链接中了解有关此服务器-客户端关系的更多信息。

[Nodejs]: https://nodejs.org/ja/docs/guides/anatomy-of-an-http-transaction/ 
[W3schools]: https://www.w3schools.com/js/js_ajax_http_response.asp 
[Nodejs]: https://nodejs.org/dist/latest-v12.x/docs/api/