Невозможно установить cookie с помощью Express cookie-parser - PullRequest
0 голосов
/ 29 октября 2018

Прошлой ночью я использовал точно такой же код, и мои cookie-файлы сохранялись в моих объектах в базе данных.Я думал, что все было хорошо, поэтому я развернул в Heroku.Оказавшись там, все ключи, которые я нажал на базу данных, показались как нулевые.С тех пор то же самое происходит на местном уровне.Вот весь мой маршрут.Несколько вопросов: 1. Можно ли установить cookie для объекта res, а затем ссылаться на него сразу после того, как я это сделал здесь?2. Он отображается как нулевой, потому что я устанавливаю cookie.key, а затем пытаюсь отправить cookie.cookie_name 3. :), но, возможно, есть другие причины, по которым он не работает.

const express = require('express');
const cookieParser = require('cookie-parser');

const router = express.Router();
const { ObjectID } = require('mongodb');


const mongoose = require('mongoose');

const { Item } = require('../models/item');


router.use(cookieParser());

router.use((req, res, next) => {
  const id = req.body.id;
  if (!req.cookie.key) {
    res.cookie('key', Math.random());
  }
  res.setHeader('Content-Type', 'application/json');
  Item.findById(id, 'voteKeys', (error, data) => {
    if (data.voteKeys.includes(req.cookies.key)) {
      const message = { message: 'You Already Voted.' };
      res.send(JSON.stringify(message));
    } else {
      next();
    }
  });
});


router.post('/', (req, res, next) => {
  const id = req.body.id;
  Item.findOneAndUpdate({
    _id: id.toString(),
  }, {
    $inc: {
      votes: 1,
    },
    $push: {
      voteKeys: req.cookies.cookie_name,
    },
  }, {
    returnOriginal: false,
  }).then((result) => {
  });
});


module.exports = router;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...