gpt4 book ai didi

javascript - jquery hide/show 在 Node js 中未按预期工作

转载 作者:行者123 更新时间:2023-12-03 00:31:52 26 4
gpt4 key购买 nike

我是 Node js 新手,我正在构建一个用于学习目的的应用程序。

我陷入了困境,我必须显示/隐藏成功和错误消息。

这里我在node js中使用了jquery插件。

下面是代码:

 const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const { window } = new JSDOM();
const { document } = (new JSDOM('')).window;
global.document = document;
global.jQuery = require('jquery')(window);
global.$ = global.jQuery;

注册码:

 doRegistration : (req , res) => {

let email = req.body.email;
let password = req.body.password;
let name = req.body.name;
let confirm_password = req.body.confirm_password;
let encryptedString = cryptr.encrypt(req.body.password);


if(email== '' || password == '' || name =='' || confirm_password =='')
{
message = "Fields are empty";
let list2 = [];
list2.name = '';
list2.email = '';
if(name!='')
{
list2.name =name;
}
if(email!='')
{
list2.email = email;
}

req.flash('error', message);

setTimeout(function(){ $("#err").hide(); },3000); //not working
res.locals.message = req.flash();
res.render('registration.ejs' ,{
code : '204',
title: "Registration",
details :list2,

});

}


}

setTimeout(function(){ $("#err").hide(); },3000);添加此代码是为了隐藏错误消息。错误消息不会被隐藏。

我的代码有什么问题吗?请建议。谢谢

最佳答案

您有一堆代码(在您的第一个代码块中),用于设置 DOM 和 jQuery。您似乎从未在文档中填充过任何数据,但这不是您最大的问题。

在您的注册代码中,您收集一些数据,将其注入(inject) registration.ejs并将结果发送给客户端。

三秒后(此时 HTTP 请求已完成,并且浏览器已收到您发送的所有内容),您调用 jQuery 函数。此函数可在任何 global.document 上运行是。

global.document似乎与 registration.ejs 没有任何关系而且,即使确实如此,也会更改服务器上当前的内容,而不会触及浏览器上的任何内容。

无法编写可以时光倒流并更改服务器三秒前发送到浏览器的内容的服务器端 JS。

可以改为包含 <script>模板文件中的元素并运行 jQuery 客户端

无法编写启动与浏览器的连接的服务器端代码(HTTP 与浏览器启动请求通信以及服务器提供响应)告诉它显示而是使用不同的文档。

可以使用 WebSockets(或不太优雅的方法,如 Comet 或轮询),以便当页面在浏览器中加载时,它会启动与服务器的连接,然后通知浏览器运行某些客户端 -隐藏元素的边代码。您仍然需要使用客户端代码进行隐藏,这只是允许您确定服务器上发生的时间。如果您只想等待一小段时间,则不需要任何复杂的操作。

关于javascript - jquery hide/show 在 Node js 中未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53827591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com