• 我转过几个弯 绕过那个小雨楼
  • 拿着蒲扇摆着衣衫渡着紧箍咒
  • 不问天涯不停留 喝过几壶酒
  • 不过年少白头道义放胸口
  • 倘若明天之后 遥看前尘剑封侯
  • 似那天上神仙无所求
  • 朝朝暮暮君如梦醒十分不为何理由
  • 是真是假是惶恐是无休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 又过了几个弯 算尽天量道莫慌
  • 踏这田园闻这芳草香
  • 跌跌撞撞仗剑天涯折煞不枉无笔良
  • 是梦是幻是温柔是家乡
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 谁能与我一醉方休

koa教程2 初始化管理器

75 0

初始化管理器

如果所有的初始化代码都放在app.js里面,那么这个文件将会变得很臃肿,我们可以将一些代码拆分出来,比如之前讲的路由自动注册的方法。

再在项目根目录里创建一个core文件夹,这个文件夹存放一些通用的方法,如初始化方法init.js

init.js

const Router = require("koa-router");
const requireDirectory = require("require-directory");

class InitManager {
  //入口方法
  static initCore(app) {
    InitManager.app = app;
    InitManager.initLoadRouters();
  };
  //注册路由
  static initLoadRouters() {
    const apiDirectory = `${process.cwd()}/app/router`;
    requireDirectory(module, apiDirectory, {
      visit: (router) => {
        if (router instanceof Router) {
          InitManager.app.use(router.routes());
        }
      }
    });
  }
};

module.exports = InitManager;

class声明一个类,类里面有一个入口方法,用于外部引入该文件时运行使用,接受一个参数,参数为new出的Koa的实例。

initLoadRouters方法用于挂载所有路由。但是会有一个问题,路径的设置。

路径的两种解决方案

目前我们使用的是相对路径,虽然说好用,但是会有一个问题,当我们文件发生移动时,相对路径就不正确了,所以,比较推荐的是绝对路径,或者说是相对根目录的路径。

目前有两种解决方案:

  1. config.js文件统一配置
  2. process.cwd()拼接

config.js

config.js以前讲过,在根目录配置一个该文件,然后导出一个对象,对象里面包含所有的设置,其中路径的设置一般是这样:

const path = require("path");

module.exports = {
  apiDirectory: path.resolve(__dirname, "./app/router"),
}

使用path来生成路径。

process.cwd()

这是一个node方法,process.cwd()可以生成一个根目录地址段

如:E:\代码\koa-test,这是我的项目根目录

于是乎我们可以这样进行拼接

const apiDirectory = `${process.cwd()}/app/router`;

使用es6的反引号语法。

这样我们初始化管理器就写好了,app.js中就可以这样写:

const Koa = require("koa");
const InitManager = require("./core/init");
const app = new Koa();

//自动注册路由
InitManager.initCore(app);


app.listen(8080);
0
  • 本文分类:Node
  • 本文标签:nodekoa初始化绝对路径
  • 流行热度:已超过 75 人围观了本文
  • 最后更新:2021年02月13日 - 1时31分29秒
  • 发布日期:2021年02月13日 - 1时31分29秒
  • 版权申明:本文系作者@木灵鱼儿原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。

相关文章

微信收款码
微信收款码