簡體   English   中英

為什么我的nodejs請求很慢?

[英]Why my nodejs requests are slow?

我是nodejs的新手,我試圖通過創建一個具有用戶列表的應用程序來學習,我可以添加和刪除這些用戶。 我在前端使用angularjs將請求發送到nodejs,然后將請求發送到mongodb。 問題是,如果我多次單擊“ adduser”按鈕中的很多次,則我的應用程序運行緩慢。 要與mongodb交互,我使用:

app.get('/users',function (req, res) {
         mongoose.model('Usuario').find(function (err, list) {
            res.send(list);
        });
});
app.post('/addusuario', function (req,res) {
  var usuario = new Usuario(req.body);
   usuario.save(function (err) {
      if (err) {
        console.log(err);
      } else {
        console.log('Usuario salvo com sucesso');
      }
 });  });
 app.delete('/delusuario/:id', function (req, res) {
    var id = req.params.id;
    mongoose.model('Usuario').findByIdAndRemove(id , function(err) {
        if(err) {
             console.log(err);
        } else {
            console.log('Usuario removido com sucesso!');
        }
    });
  });

我的angularapp:

  app.controller('AppCtrl', function($scope, $http, Data) {

    function reload() {
        Data.get('users').then(function(data){
            $scope.usuarios = data;
            console.log(data);
        });
    };


    $scope.addUsuario = function(usuario) {
        Data.post('/addusuario', usuario);
        reload();
    };

 $scope.deletarUsuario = function(id) {
        Data.delete("/delusuario/"+id).then(function(result) {

        });
            reload();
    };

    reload();
});

我不知道為什么單擊添加用戶3次以上后它會變慢。

我在您的代碼中看到您沒有將響應發送回用戶,因此您應該在數據庫中插入或刪除后執行一些操作。 res.end();

您應該通過以下方式重寫代碼:

app.get('/users',function (req, res) {
         mongoose.model('Usuario').find(function (err, list) {
            res.send(list);
        });
});

app.post('/addusuario', function (req,res) {
  var usuario = new Usuario(req.body);
   usuario.save(function (err) {
      if (err) {
        console.log(err);
        res.json({err: err});
      } else {
        res.json({ok: true});
        console.log('Usuario salvo com sucesso');
      }
 });  });

 app.delete('/delusuario/:id', function (req, res) {
    var id = req.params.id;
    mongoose.model('Usuario').findByIdAndRemove(id , function(err) {
        if(err) {
             console.log(err);
             res.json({err: err});

        } else {
             res.json({ok: true});
            console.log('Usuario removido com sucesso!');
        }
    });
  });

通過不將響應返回給客戶端來阻止堆棧。 這很可能是您請求緩慢的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM