作者amazing2014 (别断线拜托)
看板Ajax
标题[问题] Node如何把MySQL查询结果存到var再render
时间Wed Mar 30 15:13:27 2016
route.js:
-------------------------------------------------
var express = require('express');
var mysql = require('mysql');
var router = express.Router();
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '********',
database: 'MyDatabase'
});
router.get('/', function (req, res) {
var sql = 'SELECT * FROM MyTable;';
connection.query(sql, function (err, rows) {
if (err)
console.log(err);
res.render('index', {
title: 'Index',
model: rows
});
});
});
module.exports = router;
------------------------------------------------
我想问有没有办法把query的结果存到一个var result;
试过这样做但是非同步还没查好下一行程式就继续了
目的只想把route.js作纯粹的路由
但因为要等查询完成再render
route.js和db.js程式码就必须混在一起
没办法做到关注点分离
请教各位,谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 120.105.116.41
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1459322011.A.EB6.html
※ 编辑: amazing2014 (120.105.116.41), 03/30/2016 15:14:05
1F:→ mmis1000: 你需要的是dependency injection,彻底把存取db分到其他 03/30 18:06
2F:→ mmis1000: 档案吧 03/30 18:06
4F:→ amazing2014: 对,谢谢你! 成功跑出来了,这样组合更好管理程式码 03/30 18:34
5F:推 johnny9144: 楼上正解,我个人是喜欢 一种存取一个档案,然後再由 03/30 22:58
6F:→ johnny9144: 一个档案把这些存取Db的档案require进来,最後router 03/30 22:58
7F:→ johnny9144: 只要require这一个档案就可以呼叫所有存取Db的functi 03/30 22:58
8F:→ johnny9144: on 也方便管理,提供参考 03/30 22:58
9F:→ amazing2014: 我懂了,感觉有点像 Facade Pattern,谢谢 03/31 18:24