Добрый день!
Пишу учебный сайт. Столкнулась с проблемой при попытке сделать скрипт для управления данными. Этот должен считывать с консоли входные данные, и отправлять их в МонгоДБ. На данный момент код запускается, но вместо того чтобы дожидаться ответа, сразу выдает следующий prompt. Пыталась использовать onmessage и использовать message как первый параметр для on - не сработало.
Можно ли сделать как-то, чтобы он ждал события отправки строки в консоль? Интересует именно часть ввода с консоли, дальше могут быть какие-то ошибки, так как не тестировано, это уже не принципиально - исправлю:)
Спасибо!
const mongoose = require("mongoose");
mongoose.connect("mongodb://***", {useUnifiedTopology: true, useNewUrlParser: true})
const db = mongoose.connection;
const MODELS = require("../bd_config/Models.js");
let readline = require('readline');
let rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
terminal: false,
prompt: '>'
});
let test = true;
function prompt_await(text){
console.log(text);
rl.prompt();
rl.on(`line`, (input) => {
if(input != ""){
rl.close();
return input;
}else{
process.exit();
return NaN
}
});
};
let c_id, c_name, category;
while (test = true) {
c_id = prompt_await("Введите ID категории, на английском");
c_name = prompt_await("Введите имя категории для пользователей (на русском)");
category = {category_name: c_id, category_name_for_user: c_name};
if (c_id = NaN && c_name != Nan){
test = false;
}else{
MODELS.Category.create(category).then(
function(result){
console.log(result);
},
function(error){
console.log(error)
});
}
}
process.exit(1);