【发布时间】:2017-11-06 15:16:31
【问题描述】:
我是 node 和 express 的新手。我正在开发一个具有登录模块的应用程序。我可以注册用户,但在尝试登录用户时遇到了一些问题。
请在下面找到我的代码并提出建议:
登录控制器.js
app.post('/testAction',urlencodedParser,function(req,res){
var usrnm = req.body.username;
console.log(" usrnm ::: " + usrnm);
var passwd = req.body.password;
console.log(" passwd ::: " + passwd);
Users.findOne({username:"tstusr1"},function(err,data){ // Users is my schema name
if(err) throw err;
console.log(" back from ajax with data in login controller :::; " + data);
res.json(data);
});
console.log("inside index2 post");
});
我的 Login-user.js 是
$(document).ready(function(){
var items = $('form');
var user ={username: $('[name=username]', items).val()};
console.log('user ' + JSON.stringify(user));
$('form').on('submit', function(){
console.log("inside submit login");
$.ajax({
type: 'POST',
url: '/testAction',
data: user,
success: function(data, textStatus, jqXHR){
var resp = JSON.parse(JSON.stringify(jqXHR));
if(resp["status"]==200){
console.log("status == 200");
window.location.href = '/';
}
return data;
},
error:function (jqXHR, textStatus, errorThrown) {
console.log('error ' + JSON.stringify(user));
console.log("resp1 :::::: " + JSON.stringify(jqXHR));
var resp = JSON.parse(JSON.stringify(jqXHR));
console.log("resp :::::: " + resp);
}
});
return false;
});
});
我的 ejs 文件是
<form action="/testAction">
<label for="username"> Username </label>
<input type="text" for="username" name="username" />
<label for="password"> Password </label>
<input type="password" for="password" name="password" />
<button type="submit">Log In</button>
</form>
我的问题是我无法将用户名和密码的值获取到客户端 js 以及后端服务器端 js。
请帮忙
【问题讨论】:
-
您是否在任何时候遇到错误?您可能还希望在表单处理程序中使用
event.preventDefault()。你还在更新user吗? -
目前还没有这样的要求,不过谢谢建议,会继续关注的
-
您的问题不够清楚。您收到错误消息吗?你是什么意思“无法获取值......客户端......以及......服务器”?这些值已经在客户端上。您是否更正了我在下面的答案中发布的问题?你甚至没有发送最新的用户名,页面加载时只有空值。
标签: jquery node.js express mongoose ejs