【问题标题】:Seeding data to database using Strapi headless CMS使用 Strapi 无头 CMS 将数据播种到数据库
【发布时间】:2020-11-28 15:51:25
【问题描述】:

我对使用无头 CMS 的 Strapi 相当陌生。我正在尝试将一些数据填充到我的数据库中,就像将 knex 与节点 js 一起使用一样,但是,我不确定是否要这样做。我看过一个教程,其中在config/functions/bootstrap.js 中,我们将module.export 一个异步函数来填充数据;我已经这样定义了我的代码:

"use strict";
const data = [
 {
   title: "string",
   description:"string",
   director: "string",
   assistantDirector: "string",
   directorOfPhotography: "string",
   firstAc: "string",
   sound: "string",
   thumbnail: "",
   images: "",
   hairAndMakeUp: "string",
   productionAssistant: "string",
   writer: "string",
   cast: "string",
   video: "string",
   dateFilmed: 2020,
 }];

module.exports = async () => {
  data.forEach(reel => {
    await strapi.services.reel.create({
      title: reel.title,
      description: reel.description,
      director: reel.director,
      assistantDirector: reel.assistantDirector,
      directorOfPhotography: reel.directorOfPhotography,
      firstAc: reel.firstAc,
      sound: reel.sound,
      hairAndMakeUp: reel.hairAndMakeUp,
      productionAssistant: reel.productionAssistant,
      writer: reel.writer,
      cast: reel.cast,
      video: reel.video,
      dateFilmed: reel.dateFilmed,
    });
  })
};

但是,在运行 strapi develop 之后,我收到了 Error while running command develop: undefined 错误。我错过了什么?

感谢您的宝贵时间。

【问题讨论】:

  • 你运行的是什么节点版本?你运行的是什么 Strapi 版本?
  • @ghosh,感谢您的回复。但我实际上解决了这个问题。

标签: database content-management-system strapi


【解决方案1】:

问题解决了。

事实证明,删除 async/await 可以解决问题。我意识到该功能甚至不必是异步的。不太清楚为什么会这样,但这是最终结果:

"use strict";
const data = [
 {
   title: "string",
   description:"string",
   director: "string",
   assistantDirector: "string",
   directorOfPhotography: "string",
   firstAc: "string",
   sound: "string",
   thumbnail: "",
   images: "",
   hairAndMakeUp: "string",
   productionAssistant: "string",
   writer: "string",
   cast: "string",
   video: "string",
   dateFilmed: 2020,
 }];

const seedReel = (data) => {
  data.forEach((reel) => {
    strapi.query("reel").create({
      title: reel.title,
      description: reel.description,
      director: reel.director,
      assistantDirector: reel.assistantDirector,
      directorOfPhotography: reel.directorOfPhotography,
      firstAc: reel.firstAc,
      sound: reel.sound,
      hairAndMakeUp: reel.hairAndMakeUp,
      productionAssistant: reel.productionAssistant,
      writer: reel.writer,
      cast: reel.cast,
      video: reel.video,
      dateFilmed: reel.dateFilmed,
    });
  });
};

module.exports = seedReel(data)

【讨论】:

  • 这是不使用箭头函数的经典示例。至少要确保你的常量和函数参数有不同的名字。
猜你喜欢
  • 1970-01-01
  • 2018-10-01
  • 1970-01-01
  • 2021-04-04
  • 2020-10-20
  • 1970-01-01
  • 1970-01-01
  • 2015-06-29
  • 2014-03-01
相关资源
最近更新 更多