Я прочитал много документов и смотрю кучу видео, и я просто не могу заставить это работать. Рабочий процесс - это: < /p>
Получить http -запрос < /li>
Запрос обрабатывается с помощью асинхронной функции. < /Li>
Эта функция должна вызвать еще две асинхронные функции в порядке SEQ. Но это не так ждать. Мой Линтер показывает мне, что сообщение «ожидание» не влияет на тип этого выражения ». как для CreateVM, так и для ControlVM. Я использую Nodejs/Express. Я просто опубликую скелет кода. Это должно быть что -то действительно простое, но я просто не вижу.const add = async (req, res) => {
// destructure the request body
const { username, uid } = req.body;
// create vm via proxmox api
try {
await createVM(username, pveName, uid);
await controlVM("start", pveName, uid);
return res.status(200).json({
success: true,
});
} catch (e) {
errorLog("vmCont", "add", e.message, req, "error");
return res.status(500).json({
success: false,
error: e.message,
});
}
};
< /code>
Вот функция CreateVM: < /p>
const createVM = async (username, pveName, uid) => {
try {
const myConfig = {
url: `/api2/json/nodes/temppve/qemu/10000/clone`,
method: "post",
baseURL: `${process.env.PROXMOX_apiurl}`,
headers: {
Authorization: `PVEAPIToken=${process.env.PROXMOX_apikey}`,
"Content-Type": "application/json",
},
data: {
newid: uid,
description: `Server for ${username}`,
full: 1,
name: username,
storage: "local-lvm",
target: pveName,
},
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
};
await axios(myConfig);
return;
} catch (e) {
errorLog("proxmox", "createVM", e.message, false, "error");
throw new Error(e.message);
}
};
< /code>
ControlVM должен стрелять после создания виртуальной машины: < /p>
const controlVM = async (action, node, vmid) => {
let myConfig = {
method: "post",
maxBodyLength: Infinity,
baseURL: `${process.env.PROXMOX_apiurl}`,
url: `/api2/json/nodes/${node}/qemu/${vmid}/status/${action}`,
headers: {
Authorization: `PVEAPIToken=${process.env.PROXMOX_apikey}`,
},
data: "",
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
};
try {
await axios(myConfig);
return;
} catch (e) {
errorLog("proxmox", "controlVM", e.message, false, "error");
throw new Error(e.message);
}
};
Подробнее здесь: https://stackoverflow.com/questions/794 ... ot-waiting