如何减少nodejs和koa2中的app.js

时间:2018-05-25 03:20:17

标签: node.js koa koa2

我在文件app.js中有很多代码,其中一些代码如下

 const Router = require('koa-router')
 const router = new Router()
 router.get('/', async ( ctx )=>{ //lots of codes})
 router.get('/help', async ( ctx )=>{ //lots of codes})
 router.get('/signup', async ( ctx )=>{ //lots of codes})
 router.get('/signin', async ( ctx )=>{ //lots of codes})
 //and more codes

现在我想从这些路由器中减去app.js,我创建一个名为routers的文件夹,然后为每个路由器创建每个js文件,例如help.js,{ {1}},signup.js,我该如何编写这些路由器文件?以及如何在signin.js中使用它们?

2 个答案:

答案 0 :(得分:0)

您的help.js可能如下所示:

'use strict';

exports.get = async (ctx, next) => {
    // your code goes here
}
exports.post = async (ctx, next) => {
    // your code goes here
}

然后你可以在app.js中执行:

...

const help = require('./help'));

...

router
    .get('/help', help.get);
    .post('/help', help.post);

答案 1 :(得分:0)

您可以按照以下方式处理您的文件:

index.js(包含所有路线) users.js,upload.js,stats.js等..

让我们从users.js文件开始 在这里,您可以拥有多个功能,例如:

var name = "rasika";

console.log(name.slice(0,3)); // ras
console.log(name.split("").slice(0, 3).join("")); // ras

在index.js

exports.getOne = async (ctx) => {
    // your custom code here
}

exports.getAll = async (ctx) => {
    // your custom code here
}

然后在你的app.js文件中你有:

const Router = require('koa-router')
const router = new Router()
const users = require('./users')

router
   .get('/api/path/get', users.getOne)
   .get('/api/path/get', users.getAll)