【发布时间】:2016-07-24 07:07:34
【问题描述】:
尝试使用我在数据库中创建的数据登录,但是当我发布用户并返回调用 /api/login 端点时,该端点的网络响应卡在待处理的请求上。检查响应并显示我尝试发送回 mongo 的有效负载数据。
我尝试将 $q defer promise 放在调用发生的 vm.loginuser 控制器中,但无济于事。即使邮递员也无法进行登录过程,它也会卡在待处理的请求上。
角度控制:
vm.loginUser = function () {
$http.post('/api/login', vm.userlogin).success(function(response){
console.log('redirect to profile');
}).error(function(error){
console.log('err');
});
};
另外,如果我使用 .then 而不是 .success,我会收到 undefined 和 localhost:3000/[object%20Object] 404 (Not Found) 的错误“then”
server.js 调用登录端点:
app.post('/api/login', authController.login);
模块:这个 console.log 在 cmd 上返回,如果我使用完整的代码,api 会卡在挂起的请求上,不确定代码是错误的还是 mongoDB 需要很长时间才能返回用户名和密码。
module.exports.login = function (req, res){
res.send('test'); // is okay
User.find(req.body, function(err, results){
if(err){
console.log('Fail to login')
}
if(results && results.lenght ===1){
res.json(req.body.username);
}
})
}
html:
<input type="text" class="form-control" id="username"
placeholder="Username" ng-model="vm.userlogin.username">
<input type="password" class="form-control" id="exampleInputPassword1"
placeholder="Password" ng-model="vm.userlogin.password">
<button type="submit" class="btn btn-default"
ng-click="vm.loginUser()">Submit</button>
【问题讨论】:
-
服务器端是nodejs吗? console.log 在客户端和服务器端成功和错误响应,看看为什么会发生。
-
是的,它的nodejs,一切都只是console.logs(客户端和服务器端),但由于挂起的调用,它们都没有返回。如果我在 http 请求上方添加一个 console.log,它将返回,但低于该请求的任何内容都不会返回。
-
在我之前的帖子中添加了用于登录的模块代码。
-
您必须将数据响应回客户端。 res.send("test");
-
我把它放在我的 module.exports 中并且它没有返回测试,如果我使用 .then 而不是 .success 我得到一个未定义的错误“then”。和localhost:3000/[object%20Object] 404(未找到)。
标签: javascript angularjs mongodb