我试图从数据库传递一些数据给路由器,然后将数据传递给视图。将数据从模型传递到节点js中的路由器
我的模型代码:
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'test'
});
var result; // empty var which should later be filled with the querys result
connection.connect();
var query = connection.query('SELECT * FROM users', function(err, res, fields) {
if (err) throw err;
result = res; // overwrite result with the querys result
console.log(res); // This prints out everything I need
});
module.exports = {
data: result // should contain the query result (= 2 objects in this case)
}
现在我的路由文件:
var express = require('express');
var router = express.Router();
var Users = require('../models/users');
console.log(Users.data);
/* GET home page. */
router.get('/users', function(req, res) {
res.render('api', { data: Users.data, title: "Test API Output" });
});
module.exports = router;
当我CONSOLE.LOG用户或Users.data我得到了一个未定义。我真的不明白为什么会出现这种情况。我还应该如何将数据传递到文件中。
所有帮助很乐意阅读:)谢谢。
那么,如果我无法将结果保存到查询函数以外的变量,如何创建API?没有意义:O –
这是一个node.js异步的组合。这个问题可以解释:http://stackoverflow.com/questions/15635791/nodejs-mysql-connection-query-return-value-to-function-call –
我已经使用该回调方法。或者我不是? –