我已经从事Node js / express js应用程序一段时间了。我有从jQuery $ ajax调用中获取和发布的信息。
由于某种原因,我有一个“ loginUser”帖子没有进入用户路线发布方法
此操作以前一直有效,但现在已停止,并且正如任何程序员都会说的“由于某种原因已停止工作”。
我不相信任何改变。我尝试使用GET的名称,新POST的名称等。
每次它只提供500个错误,而错误对象中没有任何信息。
Loginpage.ejs表单:
<form class="form-horizontal" id="loginUserForm" >
<div class="controls">
<strong>Email</strong><br/><input type="email" class="form-control custom-input-width" id="login-email" value="adrian@adriannadeau.com" required>
</div>
<div class="controls">
<strong>Password</strong><br/><input type="password" class="form-control custom-input-width" minlength="6" id="login-password" value="Asialouie!123" required>
</div>
<div class="control-group">
<div class="controls text-center">
<br/>
<input type="submit" class="btn btn-green" id="button-signup" value="Sign in">
<br/><p class="aligncenter"><br/>
Don't have an account? <a href="/register" >Sign up</a>
<br/>Forgot password? <a href="/sendRestForm">Reset</a>
</p>
</div>
</form>
jQuery Ajax代码:
$("#loginUserForm").submit(function(event) {
// Prevent the form from submitting via the browser.
event.preventDefault();
try{
const email = $("#login-email").val();
const password = $("#login-password").val();
console.log("email: "+email);
console.log("pass: "+password);
var data = {};
data.email =email;
data.message =password;
$.ajax({
url: '/users/loginUser',type: 'POST',data: JSON.stringify(data),contentType: 'application/json',/**
* A function to be called if the request succeeds.
*/
success: function(data,textStatus,jqXHR) {
window.location.assign("/profile/?id="+data._id);
},error : function(error) {
//alert(error.name + ': ' + error.message);
console.log(error);
$(".alert-signin").show();
}
});
}
catch(err) {
console.log("err: "+err.message);
}
});
用户路由方法:
router.post('/loginUser',function(req,res) {
console.log("in user login");
});
此路线发布有效:
router.post('/',res){
logger.info("email: "+req.body.email);
User.findOne({ email:req.body.email},function (error,user) {
if(user){
console.log("user exists");
const error = new Error('User email account already exists.');
res.status(410);
res.send(JSON.stringify(error.message));
}
else{
//save user
var pwd = req.body.password;
bcrypt.genSalt(10,function(err,salt) {
if (err) {
logger.error("BCrype issue");
const error = new Error("Unable to register,please try again.");
//throw new Error('User email account already exists.');
res.status(420);
res.send(JSON.stringify(error.message));
} else {
//console.log('Salt: ' + salt);
bcrypt.hash(pwd,salt,function (err,hash) {
if (err) {
logger.error("ERROR! users bcrypt");
const error = new Error("Unable to register,please try again.");
res.status(420);
res.send(JSON.stringify(error.message));
} else {
var user = new User({
firstname:req.body.firstname,lastname :req.body.lastname,email :req.body.email,password : hash,public:1,admin: false,bio : "",location : "",avatar: "",url: "",activated:"n"
});
user.save(function (error,user) {
if (error){
res.send(error.message);
}
res.send(user)
});
}
});
}
});
}
});
});
我希望路由获取登录信息并进入LoginUser路由并输出“用户登录” 这是发布登录表单时的控制台输出:
POST http://localhost:3000/users/loginUser 500 (Internal Server Error) jquery-3.4.1.min.js:2
我不明白为什么它在控制台中显示jquery-3.4.1.min.js:2来显示500错误。
任何帮助将不胜感激。