期望的結果之前或之後執行在KOA一些數據庫命令
我要檢查或在我的節點+ KOA + MySQL服務器的啓動數據庫的狀態,應用更新腳本如果需要。在server.js如何app.listen()
最佳流量
- 設置MySQL連接
- 檢查並更新數據庫
- 玉石俱焚是否存在與更新腳本或意外的錯誤中的問題更新過程。
- 添加路由
- 啓動服務器
我的數字數據庫的更新可以在任何時候#1後進行的,但我一直沒太成功了呢。
我將我的工作重點放在來自https://github.com/chrisveness/koa-sample-web-app-api-mysql的示例代碼上,儘管它只關注api更簡單。
代碼片段
// schema/fate2.js
const versionModel = require('../models/version');
module.exports = function* updateToHead() {
yield versionModel.init();
try {
yield syncTrunkAndDev();
} catch (e) {
console.log("Latest trunk schema version is: " + versionModel.getTrunkLast());
console.log("Latest dev schema version is: " + versionModel.getDevLast());
throw "Error in upgrading", e;
}
}
// server.js
app.use(require('./schema/fate2'));
...
app.listen(process.env.PORT||3030);
// models/version.js
const Version = module.exports = {};
Version.init = function*() {
yield GLOBAL.db.query(
"CREATE TABLE IF NOT EXISTS version (" +
" id int(11) NOT NULL," +
" dev int(1) NOT NULL," +
" description varchar(50) NOT NULL," +
" applied_on timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP," +
" dirty int(1) NOT NULL DEFAULT '1'," +
" PRIMARY KEY (id)" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8"
);
};
其它計算器職位
How to perform initial setup in koa with rethinkdb - 我讀了這一個,嘗試過,但它似乎並沒有做任何事情。