Разобрался, это моя ошибка была.
Подключение к БД нужно вынести в отдельный файл и подключать его в файле с запросом.
Бодипарсер не причём, не проходил запрос к БД.
---------------------------
Здравствуйте.
Ситуация такая, подключаю в app.js бодипарсер
const express = require('express')
const mongoose = require('mongoose')
const pg = require('pg')
const bodyParser = require('body-parser')
const authRoutes = require('./routes/auth')
const analyticsRoutes = require('./routes/analytics')
const categoryRoutes = require('./routes/category')
const orderRoutes = require('./routes/order')
const positionRoutes = require('./routes/position')
const keys = require('./lib/config/keys')
const app = express()
const pgdb = new pg.Pool(keys.pgPool)
pgdb.connect()
.then(() => console.log('PG Connected'))
.catch(error => console.log(error))
app.use(require('morgan')('dev'))
app.use(bodyParser.urlencoded({extended: true}))
app.use(bodyParser.json())
app.use(require('cors')())
app.use('/api/auth', authRoutes)
module.exports = app
и пробую прописать post запрос, который так же прописываю в app.js
app.post('/register', async (req, res) => {
const obj = req.body
const queryReg = 'INSERT INTO public.users(email, password) VALUES ($1, $2)'
await pgdb.query(queryReg, [obj.email, obj.password])
res.send('ok')
}
Запрос отрабатывает. Но я хочу вынести роутеры и контроллеры в отдельные файлы.
Создаю папку роутов, подключаю роут в app.js
const authRoutes = require('./routes/auth')
содержание роута
const express = require('express')
const controller = require('../controllers/auth')
const router = express.Router()
router.post('/login', controller.login)
router.post('/register', controller.register)
module.exports = router
для теста в контроллере прописываю res, вижу результат, роут работает.
Прописываю запрос и он не отрабатывает, не парсит json объект, который я ему передаю, но этот же объект парсит по роуту из app.js
содержимое контроллера
module.exports.register = async (req, res) => {
const obj = req.body
const queryReg = 'INSERT INTO public.users(email, password) VALUES ($1, $2)'
await pgdb.query(queryReg, [obj.email, obj.password])
res.send('ok')
}
Почему бодипарсер парсит только в главном файле?