Что происходит и почему
Вы наблюдаете поведение из-за асинхронной природы Javascript.
Ваш код сверхуВниз запускает запрос POST, а затем вызывает process.exit()
до выполнения запроса, что дает поведение, которое вы видите, и «ломает» ваш код.
Оттуда у вас естьдва решения:
Вызов process.exit () при обратном вызове запроса
//NPM Package (request)
var request = require('request');
// Address of Loopback API on the same server
var api = "http://localhost:3000/api/devices";
//JSON Construction
var deviceInstance = {
"manufacturer": "manufacturer",
"model": "model"
//etc
}
// NPM (request)
request({
url: api,
method: "POST",
headers: {"Accept: application/json"},
json: true,
body: deviceInstance
}, function (error, response, body) {
if(error) {
console.log('error: '+ error);
} else {
console.log('document saved to api')
console.log(body);
console.log(response);
}
//request is done, we can safely exit
process.exit();
});
Вызов функции exit()
при обратном вызове вашего request
будет эффективно гарантировать, чтоЗапрос POST выполнен, и вы можете безопасно выйти из него.
Удаление process.exit () в целом
Факт в том, что вам не нужно было выходить вручную: любой процесс Node завершается сам по себе, как только цикл обработки событий пуст.Другими словами, если для процесса не запланировано дальнейшее задание, узел самостоятельно завершает процесс.
Более подробную информацию об этом можно найти в официальной документации: https://nodejs.org/api/process.html#process_event_exit