我正在使用庫one-drive-api,并試圖實作一個enpoint,將專案從檔案夾轉移到另一個檔案夾。 下面是我的代碼
exports.moveItem = (req, res) => /span> {
let { item_id, move_to_id, new_name } = req.body;
oneDriveAPI.items的內容。
.customEndpoint({
accessToken: accessToken。
URL: "/me/drive/items/"/span> item_id。
method: 'PATCH'。
body: {
parentReference: {
id: move_to_id},
},
name: new_name,
},
})
.then((r) =>/span> {
res.status(200).send({ drives: r }) 。
})
.catch((e) => {
res.status(500).send({ error: e.message }) 。
});
};
而我得到的是這樣的錯誤
{
"error"。"`body'選項必須是一個stream.Readable、字串或緩沖區"。
}
以下是微軟提供的檔案參考:鏈接npm
uj5u.com熱心網友回復:
你應該能夠通過事先對主體進行字串化處理來實作這一目的。
body。JSON.stringify( {
parentReference: {
id: move_to_id},
},
name: new_name,
}),
看起來它是一個來自got庫的錯誤,你的onedrive-api包正在使用該庫。傳入一個字串應該是可以的,但如果不是,那么onedrive-api包配置got請求的方式可能有問題
uj5u.com熱心網友回復:
try this:
let { item_id, move_to_id, new_name } = req.body;
let body_req = { parentReference: { id: move_to_id }; ; ; };
let stringified = JSON.stringify(body_req)。
let b = Buffer.from(stringified)。
oneDriveAPI.items.
.customEndpoint({
accessToken: accessToken。
url: `/me/drive/items/${item_id}`。
method: 'PATCH',
body: b,
})
.then((r) => {
res.status(200).send({ moved: r }) 。
})
.catch((e) => {
res.status(500).send({ error: e.message }) 。
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/332244.html
標籤:
下一篇:紅寶石-黑客等級問題
