Я сделал простой файл JS, на котором размещен локальный сервер, а затем использовал Node для чтения базы данных и возврата результатов. Моя цель — создать страницу, которая просто возвращает строки, а затем может создавать новые.
Проблема в том, что консоль регистрирует результаты, но сервер не подключается. Я могу создавать файлы, которые просто размещают серверы, но ввод запроса останавливает работу сервера. Как я могу поддерживать выполнение моего запроса на сервере?
Вот код:
const pg = require("pg");
const pool = new pg.Pool({
user: "James",
host: "127.0.0.1",
database: "makersBnb",
password: "",
port: "5432"});
pool.query('SELECT * FROM listings', (err, res) => {
console.info(err, res);
pool.end();
});
В таблице 2 строки. Вот консоль:
Result {
command: 'SELECT',
rowCount: 2,
oid: null,
rows:
[ { id: 2,
listing_name: 'testListing',
price: '5',
description: 'description',
owner_name: 'me',
email: '[email protected]',
phone_num: '07777777771' },
{ id: 1,
listing_name: 'a',
price: 'b',
description: 'c',
owner_name: 'd',
email: 'e',
phone_num: 'f' } ],
_parsers:
[ [Function: parseInteger],
[Function: noParse],
[Function: noParse],
[Function: noParse],
[Function: noParse],
[Function: noParse],
[Function: noParse] ],
RowCtor: null,
rowAsArray: false,
_getTypeParser: [Function: bound ] }



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Надеюсь, что мой проект может дать вам некоторое представление.
в файле postgreSQL:
const {Pool} = require('pg');
const config = require('../config');
const postgre = config.postgre;
const pool = new Pool(postgre);
module.exports = {
getList: (/* could add params here */ callback) => {
let param = []; //if there is params add to here in sequence,
// for text using let param = [email]
let query = 'select * from listings;'
// text is sample using params;
let text = 'select * from users where email=$1';
return pool.query(text, param, callback)
},
// here you can add more functions as you like.
}
В app.js
const db = require('/postgresql') //import the file abave
app.get('/getList',(req,res)=>{
db.getList((err,messageFromDB)=>{
if (err) {
console.info(err);
} else {
res.send(messageFromDB.rows);
}
})
}
Это будет заставлять каждый раз, когда вы вызываете /getList и базу данных (сервер node.js), возвращать результат. или вы можете просто выполнить console.info результата или сделать что-то еще.
ОБНОВЛЕНИЕ: после просмотра моего ответа и рассмотрения вашего вопроса вам не следует звонить pool.end();, если вы хотите, чтобы сервер продолжал работать.