我正在使用带有javaScript的内容管理节点模块在一个带有内容的项目上工作。我正在尝试在包含新条目的条目中创建参考。
我在浏览器控制台中获取以下消息:
Uncaught (in promise) Error: {
"request": {
"url": "https://api.contentful.com:443/spaces/59mi8sr8zemv/entries/2Bxpz2RgA4AQImQOssey8w/published",
"headers": {
"Accept": "application/json, text/plain, */*",
"Content-Type": "application/vnd.contentful.management.v1+json",
"X-Contentful-User-Agent": "contentful-management.js/1.3.1",
"Authorization": "Bearer <my management-api key>",
"X-Contentful-Version": 373
},
"method": "put",
"payloadData": null
},
"status": 422,
"statusText": "Unprocessable Entity",
"requestId": "d00dde60cd564a8db84da90cd671b19f",
"message": "Validation error",
"details": {
"errors": [
{
"name": "notResolvable",
"link": {
"id": "2Yfc2H8q9OSoOccGcSg4aU",
"linkType": "Entry",
"type": "Link"
},
"path": [
"fields",
"link",
"en-US",
7
]
}
]
}
}
at errorHandler (main-addTrack.bundle.js:3096)
当我查看内容的Web应用程序时,新条目就在那里,但保存为草稿。我要添加条目的条目说需要进行更新。
这是我用来创建和更新新条目的功能。
function publishTrack(){
//-- Creates the new track in events, with ref to korrekt date
client.getSpace(<my_spaceId>)
.then((space) => {
space.createEntry('events', newTrack)
.then( event => {
eventID = event.sys.id;
(entry) => entry.publish()
//This function is gets the entry of choosen date
space.getEntry(dateId)
.then((entry) => {
//Gets the ID from the newly created event
var newId = {sys: {
id: eventID,
linkType: "Entry",
type:"Link"
}}
//Creates a reference field in dates for show & do
entry.fields.link["en-US"].push(newId)
//update the event
return entry.update()
space.getEntry(eventID)
.then ((eventID) => entry.publish())
})
space.getEntry(dateId)
.then ((entry) => entry.publish());
})
publishModal.style.display = 'block';
publishModal.style.opacity = '1';
publishModal.style.pointerEvents = 'auto';
publishModal.style.zIndex = '99999';
})
}//end publish track
请为任何错误道歉,这是我在StackowerFlow上的第一篇文章。
看起来您的参考条目之一无法专门解决fields.link["en-US"][7]
(在错误消息中注意"路径"属性(,请确保在您之前创建和发布它创建事件。
在引擎盖下,您正在执行HTTP put请求。这意味着用新资源代替现有资源。但是,您的有效载荷为空:
"payloadData": null
您会收到一个用户错误4xx(特别是422(,这意味着您发送的有效载荷无效。因此,这意味着内容不接受将该值归为null。但是,这似乎有些怪异,因为您正在添加不是null的newId
。
您试图用PUT替换的资源是/fields/link/en-US/7
。可能不存在某些中介资源(例如,/fields
,/fields/link
或/fields/link/en-US
(,并且放在子资源上不受满足的处理。