diff --git a/app/controller/index/index.js b/app/controller/index/index.js index 2c0995e4920d9349981c65e3ef16ae5581fcbe81..e1db27491c61d9ab5236402940f7c8776e6b89dd 100644 --- a/app/controller/index/index.js +++ b/app/controller/index/index.js @@ -3,8 +3,8 @@ const egg = require('egg'); module.exports = class IndexController extends egg.Controller { async ssr() { - const result = this.service.article.getArtilceList(); - await this.ctx.render('index/index.js', result); + const result = await this.service.article.getArtilceList(); + await this.ctx.render('index/index.js', { list: result }); } async csr() { diff --git a/app/extend/application.js b/app/extend/application.js index 697c356334b7497ce1dc7ae41bc0ba522eadc1a2..87addfceedc1ce7ccf419424bfc75f3b918c0684 100644 --- a/app/extend/application.js +++ b/app/extend/application.js @@ -4,7 +4,7 @@ const DBSymbol = Symbol('Application#db'); module.exports = { get db() { if (!this[DBSymbol]) { - this[DBSymbol] = Factory(); + this[DBSymbol] = Factory('mysql'); } return this[DBSymbol]; }, diff --git a/app/lib/db/config.js b/app/lib/db/config.js new file mode 100644 index 0000000000000000000000000000000000000000..42a6c137ea232f04079139f85d5223f5837ff56e --- /dev/null +++ b/app/lib/db/config.js @@ -0,0 +1,10 @@ +const db = { + mysql: { + host: 'mysql.inscode.run', + user: 'root', + password: 'inscode', + database: 'blog' + } +} + +exports = module.exports = { db }; diff --git a/app/lib/db/file.js b/app/lib/db/file.js index 6bca8928288ae1a907a1d4f14c927345c5dc1cc0..5f9dbd949476caeda9cf72b1b89c1b7fc787b300 100644 --- a/app/lib/db/file.js +++ b/app/lib/db/file.js @@ -11,27 +11,27 @@ module.exports = class FileDB extends Base { this.instance._.mixin(lodashid); this.create(); } - create() { + async create() { this.instance.defaults({ article: [], user: {} }).write(); } - get(collectionName) { + async get(collectionName) { return this.instance.get(collectionName); } - add(collectionName, json) { + async add(collectionName, json) { return this.get(collectionName) .push(json) .write(); } - update(collectionName, where, json) { + async update(collectionName, where, json) { return this.get(collectionName).find(where).assign(json).write(); } - delete(collectionName, field) { + async delete(collectionName, field) { return this.get(collectionName).remove(field).write(); } - getPager(collectionName, json) { + async getPager(collectionName, json) { const { where, like, diff --git a/app/lib/db/mysql.js b/app/lib/db/mysql.js index 70a8d2b0214550fea4eff26d652907130dba79e4..9e22b0c046413f92cff95e5626628d01c010e895 100644 --- a/app/lib/db/mysql.js +++ b/app/lib/db/mysql.js @@ -1,3 +1,31 @@ 'use strict'; +const mysql = require('mysql'); + const Base = require('./base'); -module.exports = class MySQLDB extends Base {}; +const config = require('./config') + +module.exports = class MySQLDB extends Base { + constructor() { + super(); + + this.connection = mysql.createConnection({ + ...config.db.mysql + }); + + this.connection.connect(); + } + + getUserById(id) { + const sql = `select * from user where id = ${id}`; + + return new Promise((resolve, reject) => { + this.connection.query(sql, function (err, results, fields) { + err ? reject(err) : resolve(results); + }); + }); + } + + getPager(collectionName, json) { + return this.getUserById(1); + } +}; diff --git a/app/web/page/index/index.vue b/app/web/page/index/index.vue index 3e1cc1067326485360309b2132786954e64b717e..84090fe5eabb310d1d982f72afa2e007c273a198 100644 --- a/app/web/page/index/index.vue +++ b/app/web/page/index/index.vue @@ -6,9 +6,9 @@

- {{item.title}} + {{item.name}}

-
{{item.summary}}
+
{{item.id}}
Posted by hubcarl on 17-09-24
@@ -69,6 +69,8 @@ window.addEventListener('scroll', ()=>{ this.loadPage(); }, false); + + console.log(400, this) } } diff --git a/package.json b/package.json index a9120f2d21a5568f2a24b964c5a7e577b8c1a398..4c2eb9f3a044e435825abe9a13968e7e15a03bd8 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "lowdb": "^1.0.0", "mockjs": "^1.0.1-beta3", "moment": "^2.17.1", + "mysql": "^2.18.1", "shortid": "^2.2.8", "showdown": "^1.8.6", "simplemde": "^1.11.2",