Size: a a a

Node.js — русскоговорящее сообщество

2020 August 06

𝕮[

𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100... in Node.js — русскоговорящее сообщество
𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100к]
const express = require('express');
const sqlite3 = require('sqlite3').verbose();
const app = express();
let db = new sqlite3.Database('./user.db', sqlite3.OPEN_READONLY, (err) => {
   if (err) {
       console.error(err.message);
   }
   console.log('Connected to the chinook database.');
});

app.use((request, response, next) => {
   next()
});

app.get('/getUsers', (request, response) => {
   db.serialize(() => {
       db.each(`SELECT * FROM Users`, (err, result) => {
           if (err) {
               return err.message;
           }
           response.json({
               Users: result
           });        });
   });
});
После запроса, выдает только

{
 "Users": {
   "id": 1,
   "name": "Vasya"
 }
}

И ошибку в консоли

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
   at ServerResponse.setHeader (_http_outgoing.js:526:11)
   at ServerResponse.header (C:\Users\User\Desktop\node.js\node_modules\express\lib\response.js:771:10)
   at ServerResponse.send (C:\Users\User\Desktop\node.js\node_modules\express\lib\response.js:170:12)
   at ServerResponse.json (C:\Users\User\Desktop\node.js\node_modules\express\lib\response.js:267:15)
   at Statement.<anonymous> (C:\Users\User\Desktop\node.js\index.js:30:22)
   at Statement.replacement (C:\Users\User\Desktop\node.js\node_modules\sqlite3\lib\trace.js:25:27) {
 code: 'ERR_HTTP_HEADERS_SENT'
}

Хотя в базе 2 юзера. Пока был один юзер все работало нормально. Подскажите в чем проблема
вот эту
источник

В

Виталий in Node.js — русскоговорящее сообщество
вынеси рес.жсон вообще изз колбеков
источник

𝕮[

𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100... in Node.js — русскоговорящее сообщество
Chingiz Mamiyev
each делает цикл.Так и получается что сервер отправляет ответ дважды
Но я же только там присваиваю значения, и только после окончания цикла она должна отправиться. Или какая правильная логика должна быть?
источник

𝕮[

𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100... in Node.js — русскоговорящее сообщество
Виталий
вынеси рес.жсон вообще изз колбеков
даже из app.get?
источник

В

Виталий in Node.js — русскоговорящее сообщество
как ты вынесешь респонс из роута
источник

𝕮[

𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100... in Node.js — русскоговорящее сообщество
ну я вот тоже думаю что тупая идея, но даже так не работает

app.get('/getUsers', (request, response) => {
   let value = null;
   db.serialize(() => {
       db.each(`SELECT * FROM Users`, (err, result) => {
           if (err) {
               return err.message;
           }
           value = result
       });
   });
   response.json({
       Users: value
   });
});
источник

NW

Nemo Whois in Node.js — русскоговорящее сообщество
𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100к]
Но я же только там присваиваю значения, и только после окончания цикла она должна отправиться. Или какая правильная логика должна быть?
А чё пральные примеры в Гугле кончились?
источник

𝕮[

𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100... in Node.js — русскоговорящее сообщество
app.get('/getUsers', (request, response) => {
   db.serialize(() => {
       db.each(`SELECT * FROM Users`, (err, result) => {
           if (err) {
               err.message;
           }
           console.log(result)
       });
   });
});
даже когда я не возвращаю ничего, оно выдает ошибку
источник

В

Виталий in Node.js — русскоговорящее сообщество
всё ту же?
источник

𝕮[

𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100... in Node.js — русскоговорящее сообщество
+
источник

В

Виталий in Node.js — русскоговорящее сообщество
не верю, ты сервер перезапускаешь после изменений?
источник

𝕮[

𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100... in Node.js — русскоговорящее сообщество
да
источник

Kb

Kostya bah in Node.js — русскоговорящее сообщество
Всем привет, неподскажите чего умя user=[], Я какпонимаю соединения по Id usera. Я правильно понимаю  я беру из изерс_id и сравниваю с текущей коллекцией через ключ UserId ?
$lookup: {
     from: users,
     localField: userId,
    foreignField:  _id,
    as:  user
}          }
источник

𝕮[

𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100... in Node.js — русскоговорящее сообщество
А теперь хотите прикол в чем была ошибка?
источник

В

Виталий in Node.js — русскоговорящее сообщество
м
источник

CM

Chingiz Mamiyev in Node.js — русскоговорящее сообщество
𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100к]
app.get('/getUsers', (request, response) => {
   db.serialize(() => {
       db.each(`SELECT * FROM Users`, (err, result) => {
           if (err) {
               err.message;
           }
           console.log(result)
       });
   });
});
даже когда я не возвращаю ничего, оно выдает ошибку
app.get('/getUsers', (request, response) => {
   let value = [];
   db.serialize(() => {
       db.each(SELECT * FROM Users, (err, result) => {
           if (err) {
               return err.message;
           }
           value.push(result);
       });
   });
   response.json({
       Users: value
   });
});
источник

CM

Chingiz Mamiyev in Node.js — русскоговорящее сообщество
А так?
источник

CM

Chingiz Mamiyev in Node.js — русскоговорящее сообщество
𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100к]
А теперь хотите прикол в чем была ошибка?
В чем?
источник

𝕮[

𝕮𝖍𝖎𝖕𝖎ˢᶜᵃᵐ [20.3к/100... in Node.js — русскоговорящее сообщество
Раньше проект был  на раб столе, я перенес на д чтобы в гит кинуть, а консоль была на Десктопе.........
источник

В

Виталий in Node.js — русскоговорящее сообщество
Виталий
не верю, ты сервер перезапускаешь после изменений?
.
источник