首页 > 解决方案 > 为什么 cookieparser 不返回值?

问题描述

我的 console.log(req.cookies) 返回 [Object: null prototype] {}。不知道哪里出了问题。它从 Reactjs 正确接收变量。JWT 也可以正常工作,但是命令: res.cookie('token', token); 不起作用。当我启动程序时,它返回:[Object: null prototype] {}。我的问题是:为什么它返回我[Object: null prototype] {}。为什么有{}没有任何价值的空?

index.js:

const express = require('express')
const cookieparser = require("cookie-parser");
const cors = require('cors')
const jwt = require('jsonwebtoken')
const mongoose = require('mongoose')
const LoginModel = require('./db.js')
const Login = require('./db.js');
const app = express()
app.use(express.json())
app.use(cookieparser());
app.use(cors())
mongoose.connect('mongolink',{
    useNewUrlParser: true, useUnifiedTopology: true
})
app.post('/logging', async (req,res) =>{
    const username = req.body.username
    const password = req.body.password
    if( username!=='' && password!=='')
    {
        const Find = await LoginModel.findOne({username:username}).exec()
        console.log(Find);
        if(Find!== null)
        {
            const token = jwt.sign({ username}, 'supersecret');
            res.cookie('token', token);
            console.log(req.cookies);
        }
      }
})
app.listen(3001)

登录.js:

import React, {useState} from 'react'
import './App.css';
import Axios from 'axios'
import {Link} from 'react-router-dom'
function App() {
  const [username,setusername] = useState('')
  const [password,setpassword] = useState('')
  const Login = () => {
    Axios.post('http://localhost:3001/logging', {
      username:username,
      password: password
    })
  }
  return (
    <div className="App">
      <label>username</label>
        <input type='text' onChange={
          (event) => {
            setusername( event.target.value )
          }
        }/>
        <label>haslo</label>
      <input type='password' onChange={
       (event) =>{
         setpassword( event.target.value )
       } 
      }/>
      <button onClick={Login}>Login</button>
    </div>
  );
}

标签: javascriptreactjsexpressrequestresponse

解决方案


推荐阅读