gpt4 book ai didi

javascript - Fastify 插件 fastify-autoload 错误插件必须是一个函数

转载 作者:行者123 更新时间:2023-12-02 22:57:07 26 4
gpt4 key购买 nike

我已经使用命令 fastify-cligenerate 设置了带有 fastify-cli 库的 fastify 框架。它具有开箱即用的 fastify-autoload 插件。

但是,当我添加自己的服务时,除了 model.js 和 schema.js 文件之外,它会抛出错误。

...
fastify.register(AutoLoad, {
dir: path.join(__dirname, 'services'),
options: Object.assign({}, opts),
ignorePattern: /.*(model|schema)\.js/
})
...

错误消息:

assert.js:788
throw newErr;
^

AssertionError [ERR_ASSERTION]: ifError got unwanted exception: plugin must be a function
at wrap (D:\project\kuisioner\backend\node_modules\fastify-cli\start.js:124:5)
...
actual: Error: plugin must be a function
...
error Command failed with exit code 1.
...

但是我手动注册就可以顺利运行

...
fastify.register(require('./services/quiz/get'))
fastify.register(require('./services/quiz/post'))
...

我的文件结构:

- src
- plugins
- db.js
- services
| - quiz
| - get.js
| - model.js
| - post.js
| - schema.js
- app.js

我使用 fastify-cli fastify start -l info src/app.js 来运行我的代码

这是我的仓库 https://github.com/nnfans/kuisionerid_backend

最佳答案

检查您的存储库,错误是 dir 值。必须指向文件所在目录,暂不支持递归加载

  fastify.register(AutoLoad, {
dir: path.join(__dirname, 'services/quiz'),
options: Object.assign({}, opts),
ignorePattern: /.*(model|schema)\.js/
})

通过此更改,npm start 将起作用。

另一种选择是在需要跳过的文件中使用module.exports.autoload = false,但你的正则表达式没问题。

关于javascript - Fastify 插件 fastify-autoload 错误插件必须是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57932375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com