Запрос PUT API Node.js в первый раз завершается неудачно при перезапуске сервера. Работает в остальное время - PullRequest
0 голосов
/ 08 мая 2019

Мой запрос 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 и т. Д. Это просто не удается в первый раз после перезапуска сервера, несмотря ни на что. После этого он продолжает работать нормально. У кого-нибудь есть идеи, что может вызвать это?

...