从node.js后端控制前端javascript

从node.js后端控制前端javascript,javascript,jquery,node.js,frontend,backend,Javascript,Jquery,Node.js,Frontend,Backend,我正在构建一个聊天应用程序,我想让用户输入他们的用户名。JQuery前端代码将表单滑入视图(准备就绪时),将数据存储到变量中,然后加载聊天(当按下enter键或按钮时)。在服务器端验证用户输入之前,如何停止该动画?我使用node.js作为后端。有什么想法吗 提前谢谢 前端jQuery: var name选择,roomChoice//存储用户输入 var initName=函数(){ nameChoice=$(“#init name input”).val();//将所选名称保存在nameCho

我正在构建一个聊天应用程序,我想让用户输入他们的用户名。JQuery前端代码将表单滑入视图(准备就绪时),将数据存储到变量中,然后加载聊天(当按下enter键或按钮时)。在服务器端验证用户输入之前,如何停止该动画?我使用node.js作为后端。有什么想法吗

提前谢谢

前端jQuery:

var name选择,roomChoice//存储用户输入
var initName=函数(){
nameChoice=$(“#init name input”).val();//将所选名称保存在nameChoice中
$(“#当前名称”).text(“用户名:”+nameChoice);//将所选名称放入聊天标题中
$(“#初始化名称”).animate(
{“左”:-35%},300,
函数(){
$(this.addClass(“隐藏”);
$(“#init room”).removeClass(“隐藏”);
$(“#init room”).animate({“left”:“35%”),300);
});//在回调中删除姓名表单和滑入房间表单
}//结束initName
var initRoom=函数(){
roomChoice=$(“#init room select”).val();//将所选房间保存在roomChoice中
$(“#当前房间”).text(“房间:+roomChoice);//将所选房间放在聊天标题中
$(“#初始房间”)。设置动画(
{“左”:-35%},300,
函数(){
$(this.addClass(“隐藏”);
$(“#聊天主机”).removeClass(“隐藏”);
});//删除文件室窗体并在回调中显示页面
}//结束房间
var btnHover=函数(){
$(“.btn表单”)。悬停(
函数(){
$(this).stop().animate(
{
背景颜色:“FFBD7A”
}, 300);
},
函数(){
$(this).stop().animate(
{
背景颜色:“白色”
}, 300);
});
}
var init=函数(){
$(“#init name”).removeClass(“hidden”).animate({“left”:“35%”),300);//以名称形式的幻灯片
$(文档).keydown(函数(事件){//按enter键提交选项
if(event.which==13){
if(!$(“#init name”).hasClass(“隐藏”){//如果用户正在选择名称
event.preventDefault();
initName();//调用initName函数
}
if(!$(“#init room”).hasClass(“hidden”){//如果用户正在选择room
event.preventDefault();
initRoom();//调用initRoom函数
}
}
});//结束输入密钥提交
$(“#init name.btn form”)。单击(initName);
$(“#init room.btn form”)。单击(initRoom);
btnHover();
}//结束初始化

$(文件).ready(初始化)此项的大致代码

$http.post("/login", {"username":username, "password": password}).then(function(response) {

   console.log("success - do animation here");

}.catch(function(response) {

    console.log("failure a non 2xx HTTP response - handle error here");
});
这段代码很粗糙,因为http请求应该存在于服务中,我也没有仔细阅读这段代码,但您应该了解它的基本思想

抱歉,这是有角度的,JQUERY被要求。。。这是

$.ajax({
  method: "POST",
  url: "/login",
  data: { username: username, password: password }
})
.then(
  function( data, textStatus, jqXHR ) {
    console.log("success - do animation here");
  }, 
  function( jqXHR, textStatus, errorThrown ) {
    console.log("failure a non 2xx HTTP response - handle error here");
  }
);
以前从未在Jquery中尝试过这种方法,但文档建议使用这种方法。 在……查阅文件

谢谢

编辑:如果基于承诺的jQuery代码不可用:

$.ajax({
  method: "POST",
  url: "/login",
  data: { username: username, password: password }
})
// for older versions of jQuery, replace .done and .fail with .success and .error
.done(function( data, textStatus, jqXHR ) {
    console.log("success - do animation here");
})
.fail(function( jqXHR, textStatus, errorThrown ) {
    console.log("failure a non 2xx HTTP response - handle error here");
}); 

请发布一些代码。但为了回答一般意义上的问题,当用户点击enter键时,将数据发送到后端(AJAX),并让其返回成功或失败的响应,然后在成功返回时继续加载聊天,否则将用户保留在表单上。好的,现在,将用户名发送到服务器的调用在哪里?它可以在另一个文件中,但这段代码需要调用后端,要求它验证用户,您可以使用jQuery Ajax实现这一点。如果没有后端,那么你就没有真正的聊天应用程序,你只有一个看起来应该存在聊天的页面;因为您需要以某种方式验证用户。我建议您查看以下内容:,您可以看到他们是如何实现聊天的。这真的不是关于你的问题,而是下一步。你在这里假设吗?还有承诺吗?但总的想法是适用的。您还可以提供一个jQueryAjax示例吗?我很抱歉,我已经习惯于回答有角度的问题了!我提供了比较jQuery解决方案。希望能有所帮助。非常感谢您的回答和示例。我还有一个问题:我是否应该调用我定义的jQuery函数(initName、initRoom等等),而不是
console.log(“success-do animation here”),还是不?很抱歉回复延迟,圣诞节和所有:)是的,用触发动画的代码替换console.log语句