Я пытаюсь установить cookie с помощью метода post, чтобы выполнить какой-либо запрос базы данных и вернуть его в значение cookie, а также вернуть json с пользовательскими данными.Это работает, cookie установлен, и я получаю json на http://localhost:8080, но я получаю сообщение от компилятора:
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
Как я могу это исправить, чтобы не было этой ошибки?
моя файловая структура: root / app.js
root / controllers / cookie.controller.js
root / routs / cookie.route.js
app.js
const express = require('express');
const cors = require('cors');
const cookieParser = require('cookie-parser');
const app = express();
const port = process.env.PORT || process.argv[2] || 8080;
app.use(cookieParser());
app.use(require('./routes/cookies'));
app.use(cors());
app.listen(port, () => console.log('cookie-parser demo is up on port: ' + port));
cookie.route.js
const express = require('express');
const cookieController = require('../controllers/cookies');
const router = express.Router();
router.use(require('cookie-parser')());
router.post('/', router.use(cookieController.getCookie));
module.exports = router;
cookie.controller.js
exports.getCookie = (req, res, next) => {
let auth = req.cookies.auth;
//...db queries, get userData
let userData = {
id: '123',
token: 'sfsdfs34',
email: 'user@gmail.com'
};
// if cookie doesn't exist, create it
if (!auth) {
res.status(200)
.cookie('auth', userData.id)
.json({ message: 'it works!', user: userData });
req.cookies.auth = userData.id;
}
next();
};