使用Strapi无头CMS将数据播种到数据库

时间:2020-08-08 14:31:13

标签: database content-management-system strapi

我对使用Strapi无头CMS相当陌生。我试图将一些数据填充到数据库中,就像将knex与node 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错误。我想念什么?

谢谢您的时间。

1 个答案:

答案 0 :(得分:0)

问题解决了。

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

"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)