我对编码和node.js非常陌生,特别是这可能是一个愚蠢的问题 - 但是我为mySQL数据库查询读取的所有示例都以只是将查询结果记录到控制台...我想为我的web应用程序做什么(或者至少是我想要做的)是将查询结果作为函数的产品返回,以便我可以允许我的。 ejs文件来使用JSON对象。如何从node.js中的mySQL查询返回JSON对象
无论我尝试将我的.ejs文件接收到“Hello World”作为getDriver()的产品,情况都是如此。我想它接收'行'(即我的SQL查询返回的JSON对象)
我可以看到控制台中的JSON结果&它看起来很完美..我似乎无法让它'存在”功能:(
var express = require('express');
var router = express.Router();
var mysql = require('mysql');
/* GET about page. */
router.get('/', function(req, res, next) {
res.render('SQLtest', { title: 'SQL test',
result: getDriver() // I want this to be my JSON object
});
});
module.exports = router;
function getDriver() {
var result = "Hello World"; // my .ejs see's this
var connection = mysql.createConnection(
{
host: 'localhost',
user: 'root',
password: 'password',
database: 'my database',
port: 3306
}
);
connection.query("SELECT * FROM my_table",
function (err, rows) {
if (err) {
console.log(err);
}
console.log(rows); // query result looks fine as JSON object
result = rows; // now change "Hello World" to the JSON object
}
);
return result; // however this still = "Hello World" :(
}
非常感谢您的回复,现在完美地工作!我会用回调函数做更多练习,因为我从来都不会猜到这是问题所在。 –
太棒了!请接受答案,以便您的问题可以标记为已回答。如果您觉得有帮助,您也可以为答案投票。 – ishmaelMakitla
现在应该被接受:) - 我还有另外一个普遍的问题,因为我在这里发帖之前花了很长时间没有找到答案,我总是担心我没有以正确的方式工作;我的嵌入式JS文件带有JSON对象并将其写入到前端的表中(这是我所有的Web应用程序需要做的)。因此,以这种方式传递数据库查询是正确的?还是有其他方法我应该使用? –