羽毛 JS。如何编写自定义 CLI 方法来播种 Mongoose 模型

Feathers JS. How to write custom CLI method to seed Mongoose models

我想为@feathers/cli 编写一个自定义方法来为数据库添加一些初始数据。有人能给我指出方便扩展@feathers/cli的方向吗? 基本上,该方法应该连接到羽毛应用程序并尝试使用 service.create({data}) 调用向模型添加记录。

或者有没有更好的方法来为 Feathers 模型播种和验证数据?我使用 Feathers-mongoose 适配器。

您可以通过要求 app.js 轻松创建自己的种子脚本。例如。在 seed.js:

const app = require('../src/app');

(async () => {
  app.setup();
  // If you are using Sequelize:
  // await app.get('sequelizeSync');
  
  const user = await app.service('users').create({
    email: 'test@user.com',
    password: 'supersecret'
  });
  // Do other things here
})();

然后你可以 运行 它与 node seed

您可以使用sequelize-cli. Though I read somewhere they don't recommend mixing CLI's. Remember you are also using feathers' cli

安装 sequelize-cli。然后 npx sequelize-cli init 创建 cli 可以使用的目录结构。删除应用程序根目录中除 seeders 文件夹之外的所有新文件,不需要它们。 按 npx sequelize-cli seed:generate --name sample-table 创建迁移和数据并按 here.

所示进行编辑

您可以像这样 运行 种子 npx sequelize-cli db:seed:all 并像这样删除它 npx sequelize-cli db:seed:undo

只要您不混淆这两个 cli,这确实有助于节省时间。请记住,以这种方式创建数据不会通过 feathers hooks。

您还可以将此条目添加到项目 package.json

scripts 部分
"seed": "npx sequelize-cli db:seed:all",
"unseed": "npx sequelize-cli db:seed:undo:all",