我已经使用命令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
运行我的代码这是我的仓库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
,但是您的正则表达式可以。