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中使用该变量时,它就起作用了。
感谢您的帮助。
答案 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/