接下來準備連接一下數據庫 暫時選擇用mysql和sequelize
項目在一步步完善了 這裏只是記錄自己的開發流程並不是詳細的教程
這次的代碼在這裏 https://github.com/chunsenye/nodeServerHistory/tree/master/v1.0.0/mykoaserver
- 安裝數據庫 my_super_db
- 創建數據庫與用戶表 user
- 添加數據
INSERT INTO `my_super_db`.`user` (`userid`, `usename`, `regitime`, `lastlogin`, `sex`) VALUES (1, 'yeyeye', '2020-03-20 15:48:57', '2020-03-20 15:48:57', '男'); SELECT * FROM my_super_db.user;
- 編寫查詢接口
// app.js const Koa = require('koa') const Router = require('koa-router') const Sequelize = require('sequelize') var client = require('./client.js') var model = require('./models/user') const app = new Koa(); const router = new Router(); // logger app.use(async (ctx, next) => { await next(); }); // response router.get('/getUser', async (ctx) => { // 連接數據庫進行查詢 let data, data2 try { data = await client.query('select * from user') const pool = new model(client, Sequelize); data2 = await pool.findAndCountAll({}) } catch (e) { console.log(e); } ctx.body = { data, data2 } }) app.use(router.routes()); app.listen(8080, () => { console.log(`Server is listening on 8080`); });
// client.js const Sequelize = require('sequelize') const params = { host: 'localhost', port: 3306, dialect: 'mysql', dialectOptions: { useUTC: false, //for reading from database dateStrings: true, typeCast: true }, timezone: "+08:00", pool: { max: 10000, //最大連接數 min: 0, //最小連接數 acquire: 1000000, //請求超時時間 idle: 10000 //斷開連接後,連接實例在連接池保持的時間 }, define: { timestamps: false }, operatorsAliases: false } const client = new Sequelize('my_super_db', 'root', '123456', params); module.exports = client
/* jshint indent: 1 */ // user.js module.exports = function(sequelize, DataTypes) { return sequelize.define('user', { userid: { type: DataTypes.INTEGER(11), allowNull: false, primaryKey: true, autoIncrement: true }, usename: { type: DataTypes.STRING(45), allowNull: false }, regitime: { type: DataTypes.DATE, allowNull: true, defaultValue: sequelize.literal('CURRENT_TIMESTAMP') }, lastlogin: { type: DataTypes.DATE, allowNull: true, defaultValue: sequelize.literal('CURRENT_TIMESTAMP') }, sex: { type: DataTypes.STRING(45), allowNull: true }, }, { tableName: 'user' }); };
{ "name": "myserver", "version": "1.0.0", "description": "yeyyeyeeyeeeee", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "yeyeye", "license": "ISC", "dependencies": { "koa": "^2.11.0", "koa-router": "^8.0.8", "mysql": "^2.18.1", "mysql2": "^2.1.0", "sequelize": "^5.21.5" } }
文件夾結構
- 上傳代碼
- 運行代碼
這裏是服務端的接口
接下來要在前端項目中調用這個接口