我正在尝试向我的react native(0.60.4)ios项目创建一个放置请求,每次这样做,在发出请求时都会收到500错误。在执行post或patch方法时也遇到了相同的错误。尝试向邮递员发出请求时,我还收到500错误。
我的sql更新工作正常,因为我已经针对数据库运行了脚本并收到了预期的值,这仅仅是更新布尔值。
这是我在redux中的更新方法
export const setChecklistItemToComplete = checklistItemId => {
var checklistItemInstance = axios({
method: 'put',
url: `http://localhost:8080/xxxxxxxx/${checklistItemId}`,
headers: {
'Content-Type': 'application/json;charset=UTF-8',
'Access-Control-Allow-Origin': '*'
}
})
console.log('checklistItemInstance: ', checklistItemInstance)
return {
type: MARK_CHECKLIST_ITEM_COMPLETE,
payload: checklistItemInstance.data
}
}
这是我的控制人
try {
const db = req.app.get('db')
const { MarkChecklistItemComplete } = db.checklistItem.put
const { params = {} } = req
const { checklistItemId } = params
console.log('checklistItemId: ', checklistItemId) <---GETS TO HERE
if (joi.string().guid(checklistItemId)) {
throw new Error('The id is not in the correct format')
}
var checklistItemInstance = await MarkChecklistItemComplete({
checklistItemId
})
res.status(200)
res.json(checklistItemInstance)
} catch (error) {
res.status(500)
res.json(error)
}
}
我假设这与这里的代码无关,但更多的是应用程序本身的配置。但是发布它不会有任何伤害。如果您还有其他想看到的内容,我会很乐意分享。
答案 0 :(得分:0)
react-native
请求没有任何问题,因为您在try catch
代码块内收到错误,因此请求本身很好。如您所说,您通过邮递员会收到相同的错误。
根据我的观察,您使用PUT请求,但是您不使用任何正文。同样,您的代码未到达res.status(200)
行,但到达了这一行console.log('checklistItemId: ', checklistItemId)
。因此,错误肯定在调用MarkChecklistItemComplete({ checklistItemId })
函数中。因此,checklistItemId
的值错误/出乎意料,或者函数MarkChecklistItemComplete
的内部包含错误。
答案 1 :(得分:0)
这就是当您进行10个小时的编码狂欢时会发生的事情
我的控制器中的if语句正在检查checklistId值,并且如果id的格式正确,则会引发错误。我没有反转支票的价值...
if (joi.string().guid(checklistItemId)) {
throw new Error('The id is not in the correct format')
}
转到
if (!joi.string().guid(checklistItemId)) {
throw new Error('The id is not in the correct format')
}