update
This commit is contained in:
		
							parent
							
								
									5f81ba7309
								
							
						
					
					
						commit
						3de3d2ce9c
					
				| @ -8,7 +8,11 @@ const config = require('./config.json'); | |||||||
| // custom modules
 | // custom modules
 | ||||||
| const mysql = require('./libs/mysql_pool'); | const mysql = require('./libs/mysql_pool'); | ||||||
| const so = require('./libs/storeObject'); | const so = require('./libs/storeObject'); | ||||||
|  | const mem = require('./libs/memcache_lib'); | ||||||
| 
 | 
 | ||||||
|  | mem.host = 'dyn.trj.tw'; | ||||||
|  | mem.port = 24002; | ||||||
|  | mem.connect(); | ||||||
| 
 | 
 | ||||||
| // init mysql connection pool
 | // init mysql connection pool
 | ||||||
| mysql.database = config.db.mysql.dbname; | mysql.database = config.db.mysql.dbname; | ||||||
|  | |||||||
| @ -1,4 +1,5 @@ | |||||||
| { | { | ||||||
|  |     "public_domain": "http://localhost:3000", | ||||||
|     "port": 3000, |     "port": 3000, | ||||||
|     "db": { |     "db": { | ||||||
|         "mysql": { |         "mysql": { | ||||||
|  | |||||||
| @ -18,9 +18,9 @@ class memcachedLib { | |||||||
|      * @param {string} val  |      * @param {string} val  | ||||||
|      * @param {number} expire  |      * @param {number} expire  | ||||||
|      */ |      */ | ||||||
|     setVal(key, val, expire = this._expire) { |     async setVal(key, val, expire = this._expire) { | ||||||
|         return new Promise((resolve, reject) => { |         return new Promise((resolve, reject) => { | ||||||
|             this._conn.set(key, val, err => { |             this._conn.set(key, val, expire, err => { | ||||||
|                 if (err) return reject(err); |                 if (err) return reject(err); | ||||||
|                 return resolve(null); |                 return resolve(null); | ||||||
|             }) |             }) | ||||||
| @ -31,7 +31,7 @@ class memcachedLib { | |||||||
|      * get object from memcached |      * get object from memcached | ||||||
|      * @param {string} key  |      * @param {string} key  | ||||||
|      */ |      */ | ||||||
|     getVal(key) { |     async getVal(key) { | ||||||
|         return new Promise((resolve, reject) => { |         return new Promise((resolve, reject) => { | ||||||
|             this._conn.get(key, (err, data) => { |             this._conn.get(key, (err, data) => { | ||||||
|                 if (err) return reject(err); |                 if (err) return reject(err); | ||||||
|  | |||||||
| @ -5,9 +5,10 @@ const router = new Router(); | |||||||
| const crypto = require('../../libs/crypto.js'); | const crypto = require('../../libs/crypto.js'); | ||||||
| const so = require('../../libs/storeObject'); | const so = require('../../libs/storeObject'); | ||||||
| const mongo = require('../../libs/mongo_model.js'); | const mongo = require('../../libs/mongo_model.js'); | ||||||
|  | const mem = require('../../libs/memcache_lib'); | ||||||
| 
 | 
 | ||||||
| router | router | ||||||
|     .post('/', async (c, n) => { |     .post('/user', async(c, n) => { | ||||||
|         let arr = c.request.body; |         let arr = c.request.body; | ||||||
|         if (!arr.data) throw 'CE0000'; |         if (!arr.data) throw 'CE0000'; | ||||||
|         if (!arr.data.account) throw 'CE0001'; |         if (!arr.data.account) throw 'CE0001'; | ||||||
| @ -43,7 +44,7 @@ router | |||||||
|             record: [{ uid }] |             record: [{ uid }] | ||||||
|         } |         } | ||||||
|     }) |     }) | ||||||
|     .get('/:uid', async (c, n) => { |     .get('/user/:uid', async(c, n) => { | ||||||
|         if (!await mongo.token.checkToken(c.token)) throw 'CE1000'; |         if (!await mongo.token.checkToken(c.token)) throw 'CE1000'; | ||||||
|         try { |         try { | ||||||
|             let t = await mongo.token.getToken(c.token); |             let t = await mongo.token.getToken(c.token); | ||||||
| @ -66,7 +67,7 @@ router | |||||||
|             throw 'SE0000'; |             throw 'SE0000'; | ||||||
|         } |         } | ||||||
|     }) |     }) | ||||||
|     .put('/:uid', async (c, n) => { |     .put('/user/:uid', async(c, n) => { | ||||||
|         if (!await mongo.token.checkToken(c.token)) throw 'CE1000'; |         if (!await mongo.token.checkToken(c.token)) throw 'CE1000'; | ||||||
|         let arr = c.request.body; |         let arr = c.request.body; | ||||||
|         if (!arr.data) throw 'CE0000'; |         if (!arr.data) throw 'CE0000'; | ||||||
| @ -84,7 +85,7 @@ router | |||||||
|         try { |         try { | ||||||
|             let query = "update ??.?? set \ |             let query = "update ??.?? set \ | ||||||
|                 `name` = ?, \ |                 `name` = ?, \ | ||||||
|                 `email` = ?"+ (arr.data.password ? ',' : '') + " \ |                 `email` = ?" + (arr.data.password ? ',' : '') + " \ | ||||||
|                 " + (arr.data.password ? "`password` = ?, " : '') + " \ |                 " + (arr.data.password ? "`password` = ?, " : '') + " \ | ||||||
|                 where \ |                 where \ | ||||||
|                 `uid` = ?"; |                 `uid` = ?"; | ||||||
| @ -101,7 +102,7 @@ router | |||||||
| 
 | 
 | ||||||
|         c.body = { record: [] }; |         c.body = { record: [] }; | ||||||
|     }) |     }) | ||||||
|     .post('/login', async (c, n) => { |     .post('/login', async(c, n) => { | ||||||
|         let arr = c.request.body; |         let arr = c.request.body; | ||||||
|         if (!arr.data) throw 'CE0000'; |         if (!arr.data) throw 'CE0000'; | ||||||
|         if (!arr.data.account) throw 'CE0001'; |         if (!arr.data.account) throw 'CE0001'; | ||||||
| @ -133,6 +134,28 @@ router | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }) |     }) | ||||||
|  |     .post('/user/forgotpass', async(c, n) => { | ||||||
|  |         let arr = c.request.body; | ||||||
|  |         if (!arr.data) throw 'CE0000'; | ||||||
|  |         if (!arr.data.account) throw 'CE0001'; | ||||||
|  |         if (!arr.data.email) throw 'CE0005'; | ||||||
|  | 
 | ||||||
|  |         let user = []; | ||||||
|  |         try { | ||||||
|  |             let query = "select * from ??.?? where `account` = ? and `email` = ?"; | ||||||
|  |             let param = ['lora', 'user', arr.data.account, arr.data.email]; | ||||||
|  |             user = await c.syncQuery(query, param); | ||||||
|  |         } catch (err) { | ||||||
|  |             if (typeof err == 'string') throw err; | ||||||
|  |             c.serr = err; | ||||||
|  |             throw 'SE0001'; | ||||||
|  |         } | ||||||
|  |         if (user.length == 0) throw 'CE0007'; | ||||||
|  | 
 | ||||||
|  |         let ramdomToken = crypto.random(10); | ||||||
|  |         let | ||||||
|  |     }) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| module.exports = router; | module.exports = router; | ||||||
| @ -7,6 +7,7 @@ module.exports = { | |||||||
|     CE0004: '請輸入使用者名稱', |     CE0004: '請輸入使用者名稱', | ||||||
|     CE0005: '請輸入Email', |     CE0005: '請輸入Email', | ||||||
|     CE0006: '使用者帳號重複', |     CE0006: '使用者帳號重複', | ||||||
|  |     CE0007: '查無使用者資料', | ||||||
| 
 | 
 | ||||||
|     CE1000: 'Token驗證失敗', |     CE1000: 'Token驗證失敗', | ||||||
|     CE2000: '使用者權限不足', |     CE2000: '使用者權限不足', | ||||||
|  | |||||||
| @ -9,11 +9,13 @@ const config = require('../../config.json'); | |||||||
| const errorMng = require('./errorManager'); | const errorMng = require('./errorManager'); | ||||||
| 
 | 
 | ||||||
| // routes 
 | // routes 
 | ||||||
| const user_api = require('./user.js'); | const account_api = require('./account.js'); | ||||||
| 
 | 
 | ||||||
| // api response handler
 | // api response handler
 | ||||||
| router.use(async (c, n) => { | router.use(async(c, n) => { | ||||||
|  |     // get MySQL connection
 | ||||||
|     c.db = await mysql.getConn(); |     c.db = await mysql.getConn(); | ||||||
|  |     // set Async/Await Query
 | ||||||
|     c.syncQuery = (query, param = null) => { |     c.syncQuery = (query, param = null) => { | ||||||
|         return new Promise((resolve, reject) => { |         return new Promise((resolve, reject) => { | ||||||
|             if (param != null) { |             if (param != null) { | ||||||
| @ -30,7 +32,7 @@ router.use(async (c, n) => { | |||||||
|         }) |         }) | ||||||
|     } |     } | ||||||
|     c.token = c.headers['x-auth-token'] || ''; |     c.token = c.headers['x-auth-token'] || ''; | ||||||
|      | 
 | ||||||
|     // console.log(c.headers['accept-language'])
 |     // console.log(c.headers['accept-language'])
 | ||||||
|     try { |     try { | ||||||
|         await n(); |         await n(); | ||||||
| @ -46,24 +48,10 @@ router.use(async (c, n) => { | |||||||
|             servErr: c.serr ? c.serr.toString() : '', |             servErr: c.serr ? c.serr.toString() : '', | ||||||
|             status: 0 |             status: 0 | ||||||
|         } |         } | ||||||
|         if(e[0] == 'C' || e[0] == 'c') c.status = 400; |         if (e[0] == 'C' || e[0] == 'c') c.status = 400; | ||||||
|         if(e[0] == 'S' || e[0] == 's') c.status = 500; |         if (e[0] == 'S' || e[0] == 's') c.status = 500; | ||||||
|     } |     } | ||||||
|     if ('db' in c && typeof c.db == 'object' && 'release' in c.db && typeof c.db.release == 'function') c.db.release(); |     if ('db' in c && typeof c.db == 'object' && 'release' in c.db && typeof c.db.release == 'function') c.db.release(); | ||||||
|     // switch (typeof c.body) {
 |  | ||||||
|     //     case 'undefined':
 |  | ||||||
|     //         c.body = { errorCode: 'ERR9999', status: 0 };
 |  | ||||||
|     //         break;
 |  | ||||||
|     //     case 'string':
 |  | ||||||
|     //         c.body = { errorCode: c.body, status: 0 };
 |  | ||||||
|     //         break;
 |  | ||||||
|     //     default:
 |  | ||||||
|     //         c.body = {
 |  | ||||||
|     //             data: c.body,
 |  | ||||||
|     //             status: 1
 |  | ||||||
|     //         }
 |  | ||||||
|     //         break;
 |  | ||||||
|     // }
 |  | ||||||
| }) | }) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -72,14 +60,14 @@ router.all('*', koaBody({ | |||||||
|     multipart: true, |     multipart: true, | ||||||
|     // upload file size 10mb
 |     // upload file size 10mb
 | ||||||
|     maxFieldSize: 10 * 1024 * 1024 |     maxFieldSize: 10 * 1024 * 1024 | ||||||
| }), async (c, n) => { await n(); }) | }), async(c, n) => { await n(); }) | ||||||
| 
 | 
 | ||||||
| router | router | ||||||
|     .get('/', async (c, n) => { |     .get('/', async(c, n) => { | ||||||
|         c.body = { |         c.body = { | ||||||
|             msg: 'API Endpoint' |             msg: 'API Endpoint' | ||||||
|         }; |         }; | ||||||
|     }) |     }) | ||||||
|     .use('/user', user_api.routes()) |     .use('/account', account_api.routes()) | ||||||
| 
 | 
 | ||||||
| module.exports = router; | module.exports = router; | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user