看板 Ajax 關於我們 聯絡資訊
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://www.ptt.cc/bbs/Ajax/M.1459322011.A.EB6.html ※ 編輯: amazing2014 (120.105.116.41), 03/30/2016 15:14:05
mmis1000: 你需要的是dependency injection,徹底把存取db分到其他 03/30 18:06
mmis1000: 檔案吧 03/30 18:06
mmis1000: http://pastebin.com/G3npB0pL 像是這樣,把細節藏起來 03/30 18:13
amazing2014: 對,謝謝你! 成功跑出來了,這樣組合更好管理程式碼 03/30 18:34
johnny9144: 樓上正解,我個人是喜歡 一種存取一個檔案,然後再由 03/30 22:58
johnny9144: 一個檔案把這些存取Db的檔案require進來,最後router 03/30 22:58
johnny9144: 只要require這一個檔案就可以呼叫所有存取Db的functi 03/30 22:58
johnny9144: on 也方便管理,提供參考 03/30 22:58
amazing2014: 我懂了,感覺有點像 Facade Pattern,謝謝 03/31 18:24