From 033edc12406f24e4d3691c0ca55a5e8487978295 Mon Sep 17 00:00:00 2001 From: Heleth Date: Sun, 10 Jun 2018 21:34:38 +0800 Subject: [PATCH] feat: add bin and service --- app/controller.js | 10 ++++++++-- app/index.js | 13 ++++++++----- app/service.js | 16 ++++++++++++++++ bin/build.js | 11 ++++++----- bin/dev.js | 5 +++++ bin/index.js | 9 +++++++-- 6 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 app/service.js diff --git a/app/controller.js b/app/controller.js index ef38040..08fb279 100644 --- a/app/controller.js +++ b/app/controller.js @@ -1,8 +1,14 @@ 'use strict' const { resolve } = require('path') -const moduleLoader = require('./utils/modulesLoader') +const modulesLoader = require('./utils/modulesLoader') const dirPath = resolve(process.cwd(), './app/controller') -module.exports = moduleLoader(dirPath) +let controller = {} + +try { + controller = modulesLoader(dirPath) +} catch (e) {} + +module.exports = controller diff --git a/app/index.js b/app/index.js index 3fb1b02..b7f01ec 100755 --- a/app/index.js +++ b/app/index.js @@ -1,16 +1,13 @@ 'use strict' -const { resolve } = require('path') const Koa = require('koa') const next = require('next') const Router = require('koa-router') -const routerPath = resolve(process.cwd(), './app/router') - const config = require('./config') const controller = require('./controller') +const service = require('./service') const appRender = require('./render') -const serverRouter = require(routerPath) const port = config.server.port || 7214 const dev = !['prod', 'production'].includes(process.env.NODE_ENV) @@ -24,7 +21,12 @@ module.exports = () => { const router = new Router() const render = appRender(app, router) - serverRouter({ router, controller, render }) + try { + const { resolve } = require('path') + const routerPath = resolve(process.cwd(), './app/router') + const serverRouter = require(routerPath) + serverRouter({ router, controller, render }) + } catch (e) {} router.get('*', async ctx => { await handle(ctx.req, ctx.res) @@ -33,6 +35,7 @@ module.exports = () => { server.use(async (ctx, next) => { ctx.res.statusCode = 200 ctx.config = config + ctx.service = service await next() }) diff --git a/app/service.js b/app/service.js new file mode 100644 index 0000000..a2d0913 --- /dev/null +++ b/app/service.js @@ -0,0 +1,16 @@ +'use strict' + +const path = require('path') +const modulesLoader = require('./utils/modulesLoader') + +const dirPath = path.resolve(__dirname, '../service') + +let service + +try { + service = modulesLoader(dirPath) +} catch (e) { + service = {} +} + +module.exports = service diff --git a/bin/build.js b/bin/build.js index 89e6a01..a451d50 100755 --- a/bin/build.js +++ b/bin/build.js @@ -1,8 +1,9 @@ -#!/usr/bin/env node 'use strict' -const build = require('next/dist/build').default -const { resolve } = require('path') +module.exports = () => { + const build = require('next/dist/build').default + const { resolve } = require('path') -const config = require('../server/config') -build(resolve(process.cwd(), './'), config) + const config = require('../app/config').client + build(resolve(process.cwd(), './'), config) +} diff --git a/bin/dev.js b/bin/dev.js index e69de29..8ce6e61 100644 --- a/bin/dev.js +++ b/bin/dev.js @@ -0,0 +1,5 @@ +'use strict' + +const app = require('../app') + +module.exports = app diff --git a/bin/index.js b/bin/index.js index a47f164..4023416 100755 --- a/bin/index.js +++ b/bin/index.js @@ -1,6 +1,11 @@ #!/usr/bin/env node 'use strict' -const app = require('../app') +const dev = require('./dev') +const build = require('./build') -app() +if (process.argv.includes('build')) { + build() +} else { + dev() +}