javascript - 如何从我的 Node.JS 向我的 Javascript 客户端发送一个警报?
问题描述
我正在使用 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>
推荐阅读
- vue.js - 如何将 Storybook 安装到 VueJS 2 TypeScript 项目?
- javascript - 如何控制 React Material UI 元素上的多个事件
- c# - Visual Studio 中的 Target Framework 没有效果?
- javascript - 显示输入的 1 位数字的平均值
- json - 更新文档目录下的 Json 文件
- spss - SPSS有内生测试程序吗?
- apache-kafka - 在 KAFKA 中的最大轮询间隔之前发布新事件后跳过滞后偏移量
- r - 在 ShinyDashboard 中将滑块输入添加到 ggplot 折线图
- vue.js - 这个vue组件是怎么绑定它的样式的
- android - 列出具有包含在数组中的扩展名的文件