Node Express Post 500(内部服务器错误)jquery-3.4.1.min.js



我已经在nodejs/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('/',function(req,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)
});    
}
});
}
});
}
});
});   

我希望该路由获取登录信息,进入LogiUser路由并输出"in user login"以下是发布登录表单时的控制台输出:

POST http://localhost:3000/users/loginUser 500 (Internal Server Error) jquery-3.4.1.min.js:2

我不明白为什么它在控制台中显示500错误的jquery-3.4.1.min.js:2。

如有任何帮助,我们将不胜感激。

我认为您应该尝试以下操作:

  1. 您应该将方法属性放在形式标记中
  2. 如果服务器代码中有以下语句,请将其删除或注释掉
app.use(bodyParser.json());
  1. 如果在编写jQuery的脚本标记中有任何属性,请删除它们
  2. 状态代码500通常是什么,在服务器端代码(在根中(中存在一些错误。仔细检查路线代码

这些都是我在遇到500错误时对代码所做的建议。

最新更新