最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Node.js查询INSERT回调无法正常工作

IT培训 admin 3浏览 0评论

Node.js查询INSERT回调无法正常工作

使用POST并添加INSERT时出现小问题。其工作原理如下,但在插入数据后要使用呼叫球。目前正在更新数据库。 (很好),但不能使用回调-我希望这会在throw错误以下。因此,您可以使用result.insertId。有什么想法欢迎吗?

router.post('/group/:id', function(req, res) {

	var idToken = req.params.id;
	
	admin.auth().verifyIdToken(idToken).then(function(decodedToken) {
    	    
			var userID = decodedToken.uid;
			var name = encrypt(req.body.group);
		
			getID(userID, function(result){
				
				var ID = result;
				var post  = {ID:ID, name:name};

				db.query('INSERT INTO cu_groups SET ?', post, function (error, results, fields) {
				if (error)throw error;

        //*** when I add response here get 502 bad gateway error.
				
				});
	
				res.sendStatus(200);
							
			}); // depends on getID
				
  // admin.auth cat
  }).catch(function(error) {
  res.sendStatus(error);
  });	
	
});
回答如下:

尝试这种方式:

router.post('/group/:id', function(req, res) {

        var idToken = req.params.id;
        admin.auth().verifyIdToken(idToken).then(function(decodedToken) {

                var userID = decodedToken.uid;
                var name = encrypt(req.body.group);

                getID(userID, function(result){

                    var ID = result;
                    var post  = {ID:ID, name:name};

                    db.query('INSERT INTO cu_groups SET ?', post, function (error, results, fields) {
                        if(error){
                            return res.status(500).send(error);
                        }
                        if(!error && results){
                            return res.status(200).send(results);
                        }

                    });

                }); 

      }).catch(function(error) {
          return res.status(500).send(error);
      });   

  });

如果要使用回调,则创建一个类似的单独函数:

var insertData = function(query,data,callback){
          db.query(query, data, function (error, results, fields) {
               if(error){callback(error,null);}
               if(!error && results){callback(null,results);}
          });
});

并在getID中以这种方式调用:

     getID(userID, function(result){

                var ID = result;
                var post  = {ID:ID, name:name};

                insertData('INSERT INTO cu_groups SET ?', post, function (error,data){
                    if(error){
                        return res.status(500).send(error);
                    }
                    if(data){
                        return res.status(200).send(data);
                    }
                });

            }); 

Node.js查询INSERT回调无法正常工作

使用POST并添加INSERT时出现小问题。其工作原理如下,但在插入数据后要使用呼叫球。目前正在更新数据库。 (很好),但不能使用回调-我希望这会在throw错误以下。因此,您可以使用result.insertId。有什么想法欢迎吗?

router.post('/group/:id', function(req, res) {

	var idToken = req.params.id;
	
	admin.auth().verifyIdToken(idToken).then(function(decodedToken) {
    	    
			var userID = decodedToken.uid;
			var name = encrypt(req.body.group);
		
			getID(userID, function(result){
				
				var ID = result;
				var post  = {ID:ID, name:name};

				db.query('INSERT INTO cu_groups SET ?', post, function (error, results, fields) {
				if (error)throw error;

        //*** when I add response here get 502 bad gateway error.
				
				});
	
				res.sendStatus(200);
							
			}); // depends on getID
				
  // admin.auth cat
  }).catch(function(error) {
  res.sendStatus(error);
  });	
	
});
回答如下:

尝试这种方式:

router.post('/group/:id', function(req, res) {

        var idToken = req.params.id;
        admin.auth().verifyIdToken(idToken).then(function(decodedToken) {

                var userID = decodedToken.uid;
                var name = encrypt(req.body.group);

                getID(userID, function(result){

                    var ID = result;
                    var post  = {ID:ID, name:name};

                    db.query('INSERT INTO cu_groups SET ?', post, function (error, results, fields) {
                        if(error){
                            return res.status(500).send(error);
                        }
                        if(!error && results){
                            return res.status(200).send(results);
                        }

                    });

                }); 

      }).catch(function(error) {
          return res.status(500).send(error);
      });   

  });

如果要使用回调,则创建一个类似的单独函数:

var insertData = function(query,data,callback){
          db.query(query, data, function (error, results, fields) {
               if(error){callback(error,null);}
               if(!error && results){callback(null,results);}
          });
});

并在getID中以这种方式调用:

     getID(userID, function(result){

                var ID = result;
                var post  = {ID:ID, name:name};

                insertData('INSERT INTO cu_groups SET ?', post, function (error,data){
                    if(error){
                        return res.status(500).send(error);
                    }
                    if(data){
                        return res.status(200).send(data);
                    }
                });

            }); 
发布评论

评论列表 (0)

  1. 暂无评论