【问题标题】:Post api endpoint pending request on dev tool在开发工具上发布 api 端点挂起请求
【发布时间】: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


【解决方案1】:

你能为你的 Angular 登录调用测试这个吗

$http.post('/api/login', vm.userlogin)
.then(function(success) {

    console.log("SUCCESS");
    console.log(success);

}, function(err) {

    console.log("ERROR");
    console.log(err);

})
.finally(function() {

    console.log("FINALLY");

});

【讨论】:

  • 它与我的代码相似,但我发现如果我在我的 module.exports 中使用完整代码,这就是调用卡在挂起状态的地方,请参阅上面的编辑。不确定 mongoDB 是否需要永远返回 obj 或代码错误,但它来自一个运行良好的教程。
猜你喜欢
  • 2019-05-21
  • 2019-06-27
  • 1970-01-01
  • 2020-01-08
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
  • 1970-01-01
相关资源
最近更新 更多