Fastify 插件 fastify-autoload 报错 plugin must be a function
Fastify plugin fastify-autoload error plugin must be a function
我已经使用命令 fastify-cli generate
使用 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
来 运行 我的代码
正在检查您的存储库,错误是 dir
值。必须指向文件所在目录,暂不支持递归加载
fastify.register(AutoLoad, {
dir: path.join(__dirname, 'services/quiz'),
options: Object.assign({}, opts),
ignorePattern: /.*(model|schema)\.js/
})
通过此更改,npm start
将起作用。
另一种选择是在需要跳过的文件中使用 module.exports.autoload = false
,但您的正则表达式没问题。
如果你来到这里并且你使用打字稿,也许尝试删除 dist 目录和 re-run tsc,你可能有一个错误的路线一直存在
我已经使用命令 fastify-cli generate
使用 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
来 运行 我的代码
正在检查您的存储库,错误是 dir
值。必须指向文件所在目录,暂不支持递归加载
fastify.register(AutoLoad, {
dir: path.join(__dirname, 'services/quiz'),
options: Object.assign({}, opts),
ignorePattern: /.*(model|schema)\.js/
})
通过此更改,npm start
将起作用。
另一种选择是在需要跳过的文件中使用 module.exports.autoload = false
,但您的正则表达式没问题。
如果你来到这里并且你使用打字稿,也许尝试删除 dist 目录和 re-run tsc,你可能有一个错误的路线一直存在