首页 > 解决方案 > 无法使用 Gatsby.js 将表单数据提交到 DatoCMS

问题描述

我正在使用这个提交表单数据:

const { SiteClient } = require("datocms-client")
const client = new SiteClient("APIKEYREMOVED")
export default async function createRecord(fields) {
  console.log('@submit function ',fields)
  const record = await client.items.create(fields)
  console.log(record)
}

这是错误信息,但我无法确定它的正面或反面。

Gatsby 表单提交错误

表单的句柄提交函数成功地从表单页面调用 createRecord()。因此,问题似乎来自提供的代码段。

我从这里获取了上述片段:DatoCMS 创建记录简单示例

标签: javascriptreactjsapigatsby

解决方案


我认为您缺少表单和 DatoCMS 中的内容模型之间的关系。根据文档:

假设我们的项目包含一个“Dog”模型(ID:1234,API 密钥:dog),具有以下字段:

字段 API 密钥 字段类型
姓名 单行字符串
品种 单行字符串
描述 多段文字
年龄 整数
const { SiteClient } = require("datocms-client");
const client = new SiteClient("YOUR-API-TOKEN");
async function createRecord() {
  const record = await client.items.create({
    itemType: "1234", // model ID
    name: "Gigio",
    breed: "Labrador",
    description: "Very friendly and calm.\nI love it.",
    age: 4,
  });
  console.log(record);
}
createRecord();

在您的情况下,您似乎itemType与模型 ID 不匹配,正如您的console.log.


推荐阅读