У меня есть простой серверный узел, который делает запрос к базе данных и печатает результаты в браузере.
Когда я делаю выбор в БД, я могу взять все записи таблицы, но не отдельные поля таблицы.
1003 *
Я пытался использовать структуру "body-parser", но с отрицательными результатами.
const express = require('express');
const exphbs = require('express-handlebars');
const sql = require('mssql');
const bodyParser = require('body-parser');
const config = require('./db/config.json');
const app = express();
const port = 3000;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
/*TEST CONNECTION*/
app.get('/pippo',function(req,res){
new sql.ConnectionPool(config).connect().then(pool => {
return pool.query(`select _id, titolo, contenuto, data_insert from note`)
}).then(result => {
res.render('tabella', {
//rows: result.recordset
_id: result.body._id,
titolo: result.body.titolo,
contenuto: result.body.contenuto,
data_insert: result.body.data_insert
});
}).catch(err => {
console.log('ERROR');
console.log(result.body._id);//PRINT ERROR
});
});
1008 *
Это печать ошибки:
ОШИБКА
(узел: 9252) UnhandledPromiseRejectionWarning: ReferenceError: результат не определен
at sql.ConnectionPool.connect.then.then.catch.err (C: \ Users \ XXX \ Desktop \ YYY \ Udemy \ Progetti \ AppMyNote \ app.js: 36: 17)
в
at process._tickCallback (internal / process / next_tick.js: 188: 7)
(узел: 9252) UnhandledPromiseRejectionWarning: необработанное отклонение обещания. Эта ошибка возникла либо из-за того, что внутри асинхронной функции возникла ошибка без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch (). (идентификатор отклонения: 1)
(узел: 9252) [DEP0018] Предупреждение об устаревании: отклонение необработанного обещания устарело. В будущем отклонения обещаний, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом выхода.
Если я использую это в рендере, почему у меня нет проблем?:
res.render('tabella', {
rows: result.recordset
});
}).catch(err => {
console.log('ERROR');