@VelkinVV

Почему body-parser работает только в app.js?

Разобрался, это моя ошибка была.
Подключение к БД нужно вынести в отдельный файл и подключать его в файле с запросом.
Бодипарсер не причём, не проходил запрос к БД.
---------------------------
Здравствуйте.
Ситуация такая, подключаю в 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')
  }


Почему бодипарсер парсит только в главном файле?
  • Вопрос задан
  • 283 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы