# 公共 express-server

框架现已集成一个公共 express-server,插件开发者无需自行监听端口开启 express 服务。

# 使用公共 express-server

配置 PluginSetting.server.routers 即可接入公共 express-server。

# 示例

例如位于 test-plugin/init.ts 的入口文件有如下插件声明:

export default definePlugin( {
    name: "测试插件",
    cfgList: [],
    server: {
        routers: {
            "/api/info": express.Router().get( "/", async ( req, res ) => {
                res.send( true );
            } )
        }
    }
} );

此时可通过 localhost:{renderPort}/test-plugin/api/info 来访问该接口。

tip:强烈建议使用该支持来注册插件的接口路由。自行创建 server 服务不仅会额外占用端口,还会导致你的插件无法使用 v3 新增的插件重载支持,除非你自行对自己的 server 服务进行注销重启。

# 静态资源服务器

公共 express-server 分别为 public 目录与插件目录注册了静态资源服务器。

# 插件独有

可通过 localhost:renderPort/插件目录名/资源路径 访问插件独有的静态资源服务器。如果你不希望使用 vue 编写渲染页面,可通过此支持来使用类似 v2 的渲染方式。

同时,当你希望在前端页面中引入本地资源时,则可以利用静态资源服务器来进行访问。

示例

存在如下目录结构:

- test-plugin
  - assets
    - test.png

你可以在代码中通过如下方式加载 test.png

.test {
    background: url("/test-plugin/assets/test.png");
}

如果你使用 vue 编写渲染页面,则不建议你使用此种方式加载静态资源。

# 公共资源独有

可通过 localhost:renderPort/ 来访问 /public 目录中的资源。

例如对于 Adachi-BOT/public/assets/test-plugin/test.png,可以通过以下方式进行访问:

.test {
    background: url("/assets/test-plugin/test.png");
}

若你使用了自动更新插件静态资源支持,相关静态资源将会被下载到 /public/assets/插件名 目录下,此时使用此种方式来访问静态资源是最为有效的。不论是否使用了 vue 支持来编写页面。

最后编辑于: 8/13/2023, 7:21:32 PM