[英]How do I access data from my node.js server from client javascript?
[英]How can I send one alert from my Node.JS to my Javascript client?
我正在使用 mysql 从我的 node.js 进行基本登录。
在我的代码示例中,如果会话正确,将我发送到一个名为“home”的 html 页面,但对于这种情况,我需要在您进行会话后,我的 Javascript 客户端发送一个警报,说明您已登录或用户不正确。 如果正确,请将“正确”一词保存在一个变量中,以便稍后在我的 javascript 文件中使用
我如何发送该执行,以便我的 javascript 文件发送警报?
app.post('/auth', function(request, response) {
var username = request.body.username;
var password = request.body.password;
if (username && password) {
connection.query('SELECT * FROM accounts WHERE username = ? AND password = ?',
[username, password], function(error, results, fields) {
if (results.length > 0) {
request.session.loggedin = true;
request.session.username = username;
response.redirect('/home'); //Here I want to change the instruction so that my javascript file sends an alert and create a varible that I can use in my file Javascript
} else {
console.log('Incorrect Username and/or Password!');
}
response.end();
});
});
谢谢
这是您可以使用的肮脏技巧,但它会重新呈现 ejs 视图:
在服务器端(使用快递):
app.get('/route', function (req, res) {
res.render('view', { errormessage: 'your message' });
});
在客户端(使用 ejs 模板):
1.在你的ejs模板上创建一个不可见的div,以访问服务器发送的ejs变量:
HTML:
<div id='status' class='invisible'><%= errormessage %></div>
CSS:
.invisible {
display: none;
visibility: hidden;
}
2.在ejs的末尾添加这个js脚本(jquery)来访问这个变量并创建一个警报:
<script>
if($('div#status').text()!='')
{
alert($('div#status').text());
}
</script>
无法通过从服务器发送指令直接在客户端执行代码。 您要做的就是发送信息 ,并在客户端上正确解释它。
例如,您可以使用会话
if (results.length > 0) {
request.session.loggedin = true;
request.session.username = username;
request.session.makeAlert = true;
response.redirect('/home');
}
在/ home路线中
app.get('/home', function(req, res){
const dataYouSend = {};
if (req.session.makeAlert) dataYouSend.makeAlert = true;
res.send(dataYouSend);
});
最后在/ home路由上的JS代码中,使用您的数据
fetch('adress/to/your/home')
.then(response => {
// It may not be precisely this, I don't know how you send data
if (response.makeAlert) alert("Alert!!!");
})
.catch(err => {
if(err) console.log(err);
});
在服务器端(Express中间件):
if(userNotExist) return res.status(401).end('Incorrect Username and/or Password!');
在客户端处理。
角度:-
$http().....
.error(function(data, status) {
console.error('Repos error', status, data);//"Repos error" 500 "User already exists."
});
的jQuery:-
$.ajax({
type: "post",
url: url,
success: function (data, text) {
//success code here.
},
error: function (request, status, error) {
//error handling here.
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.