@matveyvarg

Почему не срабатывает фунцкция res.send?

app.get('/watch',function(req, res) {
 	var id = req.query.rid,
 	      code = req.query.codes;
  	getTokenFromVK(code,function(acc){
 		console.log("access_token : "+acc);
 		access_token = acc;
 		console.log('resc '+res);
 		if(req.query.btn=="create"){
 			roomid = createRoom('Test');
 			console.log("roomid="+roomid);
 			res.send('/watch/'+roomid);
 		} 
 		else if (req.query.btn=="join") {
 			res.send('/watch/'+id);
 		}
 	});
});

Почему не срабатывает res.send ? Если вынести этот блок
if(req.query.btn=="create"){
 			roomid = createRoom('Test');
 			console.log("roomid="+roomid);
 			res.send('/watch/'+roomid);
 		} 
 		else if (req.query.btn=="join") {
 			res.send('/watch/'+id);
 		}
за callback функцию, то все работает нормально. В чем может быть проблема ?
P.S сама функция getTokenFromVK:
function getTokenFromVK(codes, callback) {
	request.get('https://oauth.vk.com/access_token?client_id=5124623&client_secret=ETFO5R3J8xgnu4CjpKt5&redirect_uri=localhost:3000/home&code='+codes,function (err,res,body){
		_access_token = body.split(":")[1].split(",")[0].split("\"")[1];
		callback(access_token);
	});
	
}
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ответы на вопрос 1
@mmxdesign
Software Engineer
Здесь не дело в res.send, а в том что внутри callback - req.query.btn невиден (то есть scope не позволяет ему там быть) поэтому ниодна из ваших условий if(req.query.btn=="create") или else if (req.query.btn=="join") не срабатывает...

простой способ назначить на var btnCheck значание req.query.btn и потому уже ее проверять внутри callback...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы