如何从Node.JS向Javascript客户端发送一个警报?
我正在使用mysql从node.js进行基本登录 在我的代码示例中,如果会话正确,请将我发送到一个名为“home”的html页面,但在这种情况下,我需要在您进行会话后,我的Javascript客户端发送一个警报,说明您已登录或其用户不正确。如果正确,则将单词“correct”保存在一个变量中,以便以后在javascript文件中使用 我如何发送该执行,以便我的javascript文件发送警报如何从Node.JS向Javascript客户端发送一个警报?,javascript,node.js,Javascript,Node.js,我正在使用mysql从node.js进行基本登录 在我的代码示例中,如果会话正确,请将我发送到一个名为“home”的html页面,但在这种情况下,我需要在您进行会话后,我的Javascript客户端发送一个警报,说明您已登录或其用户不正确。如果正确,则将单词“correct”保存在一个变量中,以便以后在javascript文件中使用 我如何发送该执行,以便我的javascript文件发送警报 app.post('/auth', function(request, response) { var
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();
});
});
谢谢通过从服务器发送指令,无法直接在客户端执行代码。您要做的是发送信息,并在客户机上正确解释它 例如,您可以使用会话
if (results.length > 0) {
request.session.loggedin = true;
request.session.username = username;
request.session.makeAlert = true;
response.redirect('/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);
});
在服务器端(快速中间件):
在客户端处理
角度:-
jQuery:-
下面是一个可以使用的肮脏技巧,但它将重新呈现ejs视图: 在服务器端(使用express): 在客户端(使用ejs模板): 1.在ejs模板上创建一个不可见的div,以访问服务器发送的ejs变量: HTML: 2.在ejs末尾添加此js脚本(jquery)以访问此变量并创建警报:
<script>
if($('div#status').text()!='')
{
alert($('div#status').text());
}
</script>
如果($('div#status').text()!='')
{
警报($('div#status').text();
}
您使用的是模板引擎吗?@collinger否,我如何使用它?response.json({message:“您的消息在这里”,状态:200//4XX表示任何错误})
然后在javascript(前端)中根据您的响应进入然后进入或catch
。@ShaileshRathod,你有什么例子吗?@IsaacAlejandro你如何管理你的前端,你是否使用任何框架,或者仅仅通过NodeJS发送静态html文件?如何获取?
$http().....
.error(function(data, status) {
console.error('Repos error', status, data);//"Repos error" 500 "User already exists."
});
$.ajax({
type: "post",
url: url,
success: function (data, text) {
//success code here.
},
error: function (request, status, error) {
//error handling here.
}
});
app.get('/route', function (req, res) {
res.render('view', { errormessage: 'your message' });
});
<div id='status' class='invisible'><%= errormessage %></div>
.invisible {
display: none;
visibility: hidden;
}
<script>
if($('div#status').text()!='')
{
alert($('div#status').text());
}
</script>