我想从mysql中选择数据,并将值放入对象中。
它在php上工作,但我不明白为什么在node.js 中不工作
注意:我只放了部分代码。
php中的mycode:
$res = mysqli_query($mysqli, "SELECT message FROM mempool messageID=1");
$row = mysqli_fetch_assoc($res);
$test = new BlockChain();
$test->addBlock(new Block($row['message']));
node.js 中的代码
con.query("SELECT message FROM mempool where messageID=1", function (err, rows, fields) {
if (err) throw err;
});
let test = new Blockchain();
test.addBlock(rows);
node.js:的错误
ReferenceError: rows is not defined
请帮忙吗?
因为在nodejs中使用回调函数,行变量并没有在作用域之外定义。如果你想把它改成
con.query("SELECT message FROM mempool where messageID=1", function (err, rows, fields) {
if (err) throw err;
console.log(rows);
let test = new Blockchain();
test.addBlock(rows);
console.log(test);
});
您可以将其重写为异步/等待方式
const rows = await db.query( 'SELECT message FROM mempool where messageID=1' );
let test = new Blockchain();
test.addBlock(rows);
这个例子可能很有用db select nodejs example
问题是上面提到的行的范围,这些行应该在con.query(….(中;