Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我怎样才能控制错误,猫鼬_Javascript_Mongodb_Mongoose - Fatal编程技术网

Javascript 我怎样才能控制错误,猫鼬

Javascript 我怎样才能控制错误,猫鼬,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,这是一个关于私人比赛,游戏有2名球员,名字和密码,如果你想加入你必须匹配他们 问题是:我如何控制何时匹配或名称不匹配或游戏已满,以便向客户端发送不同的消息? 如果有人能给我看另一篇有帮助的帖子或一些文档链接,我会非常高兴 多谢各位 exports.joinPrivateMatch = (req, res) =>{ let gamePass = req.body.password; let gameName = req.body.name; let playerid = req.body.p

这是一个关于私人比赛,游戏有2名球员,名字和密码,如果你想加入你必须匹配他们

问题是:我如何控制何时匹配或名称不匹配或游戏已满,以便向客户端发送不同的消息? 如果有人能给我看另一篇有帮助的帖子或一些文档链接,我会非常高兴

多谢各位

exports.joinPrivateMatch = (req, res) =>{
let gamePass = req.body.password;
let gameName = req.body.name;
let playerid = req.body.playerid;
let socketPID = req.body.socketid;

creatematch.findOneAndUpdate({player2: null, name: gameName, password: gamePass}, {
    player2: playerid,
    socketID2: socketPID
}, {new:true}, function(err, result){
    if(result){
        res.send(result);
        ioConnection.to(`${result.socketID1}`).emit('addplayer2', result);
        ioConnection.to(`${result.socketID1}`).emit('matchfull', /*{ScreenReady: true} */);
        ioConnection.to(`${result.socketID2}`).emit('matchfull', /*{ScreenReady: false} */);
    }
    if(err){
        return res.send('something went wrong', err)
    }
    else{
        console.log('Contraseña incorrecta o partida llena')
        ioConnection.to(`${socketPID}`).emit('sadsmiley')
    }
})
我写了这样的东西:

 if(name != gameName || password != gamePass){
console.log("name or password doesnt match")
ioConnection.to(`${socketPID}`).emit('findError1')
}

但是,只要我没有得到响应,名称和密码将是未定义的。

您可以使用Express中间件实现此目的。。。 看

var app = express()
var router = express.Router()

// a middleware function with no mount path. This code is executed for every request to the router
router.use(function (req, res, next) {
  //here implement code for matching gameName & Password
  //if not match, return authentication error response
  //else pass the control to the next function 
  next()
})