【发布时间】:2018-04-19 15:50:06
【问题描述】:
我是nodejs 和expressjs 的新手,我想对我的数据库表进行一些查询并在视图中显示结果,但我做不到:
var express = require('express');
var router = express.Router();
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "imanweb"
});
/* GET home page. */
router.get('/', function(req, res, next) {
let objects=['a','b']
con.connect(function(err){
if(err) throw err;
con.query("select * from tags", function (err, result) {
if (err) throw err;
result.forEach(function(element) {
objects.push(element);
console.log("Result: " + element.title);
}, this);
});
})
console.log("Array: " + objects);
res.render('index', { title: 'Express' ,objs:objects});
});
module.exports = router;
其实这段代码的日志是这样的:
Arr:a,b
Get 200 /410.25 ms --196
Result:php
Result:.net
所以我的代码的最后一行似乎比过去的行(查询)运行得更快!
这有点像异步代码运行!。所以当我将objects 给objs 参数时。里面没有查询结果。
作为解决方案,我尝试使用then(),但我得到> undefined,然后我的代码出错了..
我该如何处理??
【问题讨论】:
标签: mysql node.js typescript express