Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
下面的node.js mySQL查询有什么问题?_Mysql_Node.js - Fatal编程技术网

下面的node.js mySQL查询有什么问题?

下面的node.js mySQL查询有什么问题?,mysql,node.js,Mysql,Node.js,================================================= >下面是一个要存储在变量中的查询 您应该在查询中使用参数,即 let x = tempCont.query('SELECT password FROM `users` WHERE `user_name` = ?', [req.body.user_name], function (err, result) { if (err) { consol

=================================================

>下面是一个要存储在变量中的查询
您应该在查询中使用参数,即

let x = tempCont.query('SELECT password FROM `users` WHERE `user_name` = ?',
    [req.body.user_name],
    function (err, result) {
        if (err) {
            console.log('Error in user_name Query');
        }
        else {
            console.log(result);
        }
    });
通过将username变量作为参数传递到数组中,应该已经为您完成了正确的转义。

如何

var x = 0;

tempCont.query('SELECT password FROM `users` WHERE `user_name` =' + req.body.user_name,
            function (err, result, field) {
                if (!!error) {
                    console.log('Error in user_name Query');
                }
                else {
                    console.log(result);
                }    

                x = result

                // to display password of row 1
                console.log(x[0].password);

                // to display row 1
                console.log(x[0]);

                // to display the object
                console.log(x);

            })
还应使用以下格式:

tempCont.query('SELECT password FROM `users` WHERE `user_name` = ?',[req.body.user_name],(err, result, field){
});

下面是我如何使用查询数据以及如何在外部使用它。像外部模块一样使用它

function fuser(req,res,next){
  var db = require('../../lib/database')();
  db.query("SELECT * FROM tbluser WHERE strSNum= ?",[req.params.userid], (err, results, fields) => {
      if (err) console.log(err);
      req.user= results;
      return next();
    });
}

router.get('/:userid', fuser, (req, res)) => {
   res.render('profile/views/index',{usertab: req.user});
});

在本例中,将results对象分配给req.user,但本例使用express

解决了我无法在最后一个console.log中检索查询值的问题。。如何获取密码?字符串连接->SQL注入警报。请不要将密码存储为纯文本。我不明白。。怎么做。。我无法检索作为SQL结果的x的值Query@isodino将原始MySQL查询打印到控制台,您将看到为什么它的行为不符合预期。您永远不会用单引号转义用户名,但无论如何也不要这样做,而是使用参数。抱歉,我尝试了。。但它给了我一个未定义的值…当我们使用结果为[0]的内部console.log时。它给了一个值。。当我们尝试从外部console.log中的x变量获取值时。。它给出了未定义的。。我确实需要从变量中获取值的问题我不知道您正在尝试执行什么操作,但如果没有发生错误,则
result
应包含您的结果集。它不起作用。。我无法通过变量xtry running console获取查询的值。在函数中记录(结果),您想要的结果是否显示在终端中?是的,它显示了,但我确实需要它在query函数之外如何仅传递密码x=result[0]。密码,因为您似乎只尝试获取1个密码变量x=1;var y=0;var z=connection.query('SELECT*from
roles
where
id
='+x,函数(错误、结果、字段){if(错误)抛出错误;console.log(结果[0]。角色);y=results[0]。角色;console.log(y);返回y;});控制台日志(y);控制台日志(z);好的,我怎么用承诺?在你的例子中。。我也不能在函数或查询之外控制台req.user的.log
function fuser(req,res,next){
  var db = require('../../lib/database')();
  db.query("SELECT * FROM tbluser WHERE strSNum= ?",[req.params.userid], (err, results, fields) => {
      if (err) console.log(err);
      req.user= results;
      return next();
    });
}

router.get('/:userid', fuser, (req, res)) => {
   res.render('profile/views/index',{usertab: req.user});
});