有没有更好的方法将文件夹位置传递给我的npm包?

时间:2019-03-30 15:23:44

标签: javascript npm callback publish

我正在发布我自己的npm软件包,它目前完全可以正常运行。但是,我觉得有更好的方法将文件夹路径传递给模块。

当前我的模块有一些文件路径,写为../../../views等...

我不想这样包含它们,有人建议我使用回调,但是我不确定如何将它们集成到模块中。

这是我的index.js文件。

const Koa = require('koa');
app = new Koa();
autorouter = require('./autorouter.js');

app.use(autorouter);
module.exports = function autoroute(){
    return app;
}

这是文件“ autorouter”

const send = require('koa-send'),
  fs = require('fs'),
  render = require('koa-ejs'),
  path = require('path'),
  run = require('../../../run.js');

const publicFolder =  path.join(__dirname, '../../../public');
const viewsFolder =  path.join(__dirname, '../../../views');

render(app, {
  root: viewsFolder,
  layout: false,
  viewExt: 'html',
  cache: false,
  debug: false
});

autorouter = async (ctx) => {

  if (!(ctx.path.includes('.'))) {
    if (ctx.path.length == 1) {
      await ctx.render('index', await run('index', ctx));

    } else {
      if (!(pageExists(ctx.path + '.html'))) {
        await ctx.render('404');
      } else {
        await ctx.render(ctx.path.substr(1), await run(ctx.path));
      }
    }
  } else {

    await send(ctx, ctx.path, {
      root: publicFolder
    });
  }

}

module.exports = autorouter;


pageExists = (page) => {
  return fs.existsSync(viewsFolder + page);
}

对于将其应用于更好的方法学的任何帮助,将不胜感激。

0 个答案:

没有答案