簡體   English   中英

服務器未使用參數響應URL

[英]Server not responding to url with parameters

我正在嘗試創建服務器,現在應該能夠注冊用戶。 但是,嘗試使用/ reg注冊時,服務器不響應。 當我創建一個新的.get時,它確實會響應,因此服務器本身正在運行。

我還不清楚如何正確設置網址格式。

app.post('/reg/:uname/:teamid', function(req, res){
  var username = req.params.uname;
  var teamidpar = req.params.teamid;

  UserSchema.pre('save', function (next) {
    this1 = this;

    UserModel.find({uname : this1.username}, function(err, docs) {
        if (!docs.length) {
            //Username already exists
        } else {
            var loginid = randomstring.generate();
            var newUser = User({
                uname : username,
                teamid : teamidpar,
                totalscore : 0,
                lastopponement : null,
                gamescore : 0,
            });

            User.save(function (err, User, next) {
                if (err) {return console.error(err);}
                else
                {console.log(timestamp+':'+'User created:'+newUser.uname+':'+newUser.login);}
                res.json({login : loginid});
            });   
         }
      });
   });
});

我不知道為什么我之前沒有看到它,但是您在一開始使用UserSchema.pre ,但這只是一個定義,不會立即執行。 僅當您實際在文檔上進行save ,此功能才會被觸發。

在正確的,經過修改的版本下方。

app.post('/reg/:uname/:teamid', function(req, res) {
  var username = req.params.uname;
  var teamidpar = req.params.teamid;

  // If you are just checking if something exist, then try count 
  // as that has minimal impact on the server
  UserModel.count({uname : username}, function(err, count) {
    if (count > 0) {
      // Username already exists, but always output something as we
      // don't want the client to wait forever
      return res.send(500);
    }

    var loginid = randomstring.generate();

    // You'll need a new instance of UserModel to define a new document
    var newUser = new UserModel({
      uname : username,
      teamid : teamidpar,
      totalscore : 0,
      lastopponement : null,
      gamescore : 0,
    });

    // Save the document by calling the save method on the document
    // itself
    newUser.save(function (err) {
      if (err) {
        console.error(err);

        // You'll want to output some stuff, otherwise the client keeps on waiting
        return res.send(500);
      }

      console.log(timestamp + ': User created:' + username + ':' + loginid);
      res.json({login : loginid});
    });   
  });
});

暫無
暫無

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

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