Я делаю приложение для опроса, где на / createpoll вы можете заполнить новый вопрос и ответить на него. На странице индекса вы можете проголосовать в опросе. Прямые обновления выполняются с использованием Primus (websocket).
Файл live.js, который я использую, работает в качестве концентратора для передачи данных и запуска событий (например, голосование в опросе, чтобы все могли видеть обновления в режиме реального времени).
Когда я подключаюсь к странице индекса, я хотел бы показать последний опрос из онлайн-коллекции базы данных mongodb. Я написал запрос и вернул документ. Однако переменная, в которой я сохраняю запрос, возвращает неопределенное значение, когда console.logged или передается на страницу индекса, где я хочу поместить его в html.
Основной вопрос: как сохранить значение без ключа в переменной?
Я пытался разобрать, разобрать, ... но все возвращаются с ошибками.
// the connection works, uri details are at the top of the file, but I
// won't include for safety. I can see the data getting stored.
mongoose.connect(uri, { useNewUrlParser: true})
.then((conn)=>{
let modelConn = conn.model ('poll', pollSchema);
let question = modelConn.findOne({},'question', {projection:{question:1, _id: 0}},function(err,obj) { console.log(obj); }).sort([['_id', -1]]);
let answer1 = modelConn.findOne({},'answer1', {projection:{answer1:1, _id: 0}}, function(err,obj) { console.log(obj); }).sort([['_id', -1]]);
let answer2 = modelConn.findOne({},'answer2', {projection:{answer2:1, _id: 0}}, function(err,obj) { console.log(obj); }).sort([['_id', -1]]);
primus.write({
"action": "showDbPoll",
"question": question,
"answer1": answer1,
"answer2": answer2
});
})
.catch((errorMessage) => {
console.log(errorMessage);
});
// console output from nodemon
{ question: 'a question' }
{ answer1: 'answer 1' }
{ answer2: 'answer 2' }
Я хочу, чтобы значение документа было сохранено в переменной, чтобы я мог передать его на следующую страницу. Поэтому моя переменная должна быть равна этой строке: «вопрос»