首页 > 其他分享 >fastify-autoload 一个方便的插件动态加载包

fastify-autoload 一个方便的插件动态加载包

时间:2023-10-17 09:56:02浏览次数:34  
标签:插件 const app autoload fastify 加载

fastify-autoload 是一个方便的fastify 插件加载工具,我们可以基于路径直接加载开发的插件

参考使用

  • 配置
const Fastify = require('fastify')
const path = require("path")
const autoLoad = require('@fastify/autoload');
const app = Fastify({
    logger: true,
    ignoreDuplicateSlashes: true,
}
);
 
app.register(autoLoad, {
    dir: path.join(__dirname, 'plugins')
})
 
app.listen({
    port: 3000,
    host: '0.0.0.0',
    backlog: 511
}, (err, address) => {
    if (err) {
        console.log(err)
        process.exit(1)
    } else {
        console.log(`Server listening on ${address}`)
    }
})
  • 插件开发
    可以是标注的插件,也可以是基于fastify 提供的 fastify-plugin包开发的(这个也是不少官方以及社区插件推荐的开发模式)
    基于fastify-plugin开发的插件
 
const fp = require('fastify-plugin')
function appsPlugin(fastify, opts, next) {
    fastify.get("/app", async (req, res) => {
        let info = {
            ...req.dalong,
            ...fastify.dalongversion,
            id: "dalong app demo"
        }
        console.log(`------${JSON.stringify(info)}----`)
        res.send(info)
    })
    next()
}
// 通过astify-plugin包装插件
module.exports = fp(appsPlugin, {
    name:"app"
})

说明

对于设计开发比较推荐的是可以结合@vercel/ncc, 这样我们打开的应用就比较方便了,在我们的core 部分只提供通用包,每个插件自己开发,然后就是一些标注的commonjs 模块代码(直接基于文件目录加载存储)
打包之后的效果

 

参考资料

https://www.npmjs.com/package/@fastify/autoload
https://github.com/fastify/fastify-autoload
https://github.com/vercel/ncc#readme

标签:插件,const,app,autoload,fastify,加载
From: https://www.cnblogs.com/rongfengliang/p/17769011.html

相关文章

  • C#开发wps插件
    首先安装wps2016专业版,然后再开发。第一步,打开vs2010,新建一个类库项目  说明:其中Resource1.resx是资源文件,它包括了两张png图片一个定义ribbon的txt文件。第二步,项目生成设置勾选com互操作注册。第三步:设置程序集文件打开AssemblyInfo.cs设置ComVisible为true,如图所示......
  • UE功能性插件
    ---打开资源管理器UCLASS()classOPENWINDOWSFILE_APIUMyBlueprintFunctionLibrary:publicUBlueprintFunctionLibrary{ GENERATED_BODY()public: UFUNCTION(BlueprintCallable,Category="OpenWindowsFile") staticTArray<FString>OpenWindowsFiles();};#......
  • elasticsearch安装dynamic-synonym插件
    今天就来和大家讲讲如何在es中安装dynamic-synonym插件,首先我们需要去github上下载与es版本对应的插件,一般github上基本都是本地词库和远程文本词库的,在gitee上可以找到采用数据库作为词库的源码,大致思路就是修改一些参数配置,然后自己创建一个表作为同义词词库,最后将打包好的jar包......
  • Vue3| Pinia 持久化插件
    对vuex或Pinia里面的内容做本地持久化1.安装插件:npmipinia-plugin-persistedstate2.将插件添加到pinia实例上①main.js里导入持久化插件:importpiniaPluginPersistedstatefrom'pinia-plugin-persistedstate'② app.use(pinia.use(piniaPluginPersistedstate))......
  • IntelliJ IDEA 2023.2社区版插件汇总
    参考插件帝:https://gitee.com/zhengqingya/idea-config/IDEA插件市场:https://plugins.jetbrains.com/突发小技巧:使用插件时要注意插件的版本兼容性,并根据自己的实际需求选择合适的插件。同时,不要过度依赖插件,保持简洁和高效的开发环境才是最重要的。@目录1.SmartTomc......
  • c#应用篇之二大漠插件
    大漠插件是自动化脚本插件,在按键精灵和易语言里面用得很多,可以应用在找图、找字、按键等等。大漠插件是可以用在C#里的调用的。[MOCHACFG]NHErR0x4MnpsdkhxSTk4V1dzbjJwWi8yc2R2em1pOWZlYXlZRkl6RkpzSjB1cmwzS0MzaGdFcEhwN1gzckFmN0hsbmVRSVdLL0R0Qkw3K3dpZFl4ampZVDM3Y3RWZ3ByaU......
  • 1.5 为x64dbg编写插件
    任何一个成熟的软件都会具有可扩展性,可扩展性是现代软件的一个重要特征,因为它使软件更易于维护和适应变化的需求,x64dbg也不例外其可通过开发插件的方式扩展其自身功能,x64dbg提供了多种插件接口,包括脚本插件、DLL插件、Python插件和.NET插件等。此外,x64dbg还支持用户自定义命令和快......
  • MybatisPlus的动态表名插件
          ......
  • Sonar Qube社区版多分支插件集成
    社区版本不支持对多分枝的区分,要实现其功能,可以通过一个开源的插件来完成,插件的地址:https://github.com/mc1arke/sonarqube-community-branch-plugin第一步:下载匹配的插件首先我们根据所安装的Sonar版本来下载相应版本的sonarqube-community-branch-plugin插件SonarQubeVersionPlu......
  • Solidworks流体仿真插件安装及案例分析
    Solidworks流体仿真插件安装及案例分析1流体仿真插件的安装如图1所示,安装时勾选SolidworksFlowSimuation模块,一路“下一步”安装完毕。完成安装后打开软件,图2所示,点击Solidworks插件按钮,找到SolidworksFlowSimuation按钮,双击可打开说明插件安装成2案例分析2.1案例背景......