Мой запрос PUT всегда терпит неудачу в первый раз после перезапуска сервера, но работает после неудачной первой попытки. Мои запросы GET / DELETE / POST работают нормально все время.
Я попытался использовать itemid в качестве const вместо того, чтобы использовать его в качестве глобальной переменной, чтобы убедиться, что это не асинхронная проблема с этой переменной
public async PutSomething(metadataObject: any, id: any) {
const params = {"id": id};
const itemidquery = "SELECT itemid FROM archive WHERE id = " + "${id};";
let itemid: any;
try {
itemid = await connection.db.one(itemidquery, params);
}
catch (e) {
console.log(e);
}
console.log("The itemid for the item to be updated" + itemid.itemid);
const urlFinal = BASEURL + "items/" + itemid.itemid + "/metadata";
console.log(urlFinal);
const headersOpt = {
"rest-dspace-token": process.env.TOKEN,
"content-type": "application/json"
};
const options = {
rejectUnauthorized: false,
method: "PUT",
uri: urlFinal,
headers: headersOpt,
body: metadataObject,
json: true,
encoding: "utf8",
};
rp(options)
.then(async function (res: Response, req: Request) {
console.log("Successful PUT" + res as any);
})
.catch(function (err: Error) {
console.log("Error while updating julkaisu: " + id + " with error: " + err);
});
}
По моему мнению, это должно работать нормально, так как все другие мои API-маршруты работают нормально, GET / DELETE / POST и т. Д. Это просто не удается в первый раз после перезапуска сервера, несмотря ни на что. После этого он продолжает работать нормально.
У кого-нибудь есть идеи, что может вызвать это?