Ask Your Question
4

Is it not possible to set cookies in Next.js when using Node.js (Express) as the backend?

asked 2022-10-29 11:00:00 +0000

ladyg gravatar image

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
3

answered 2021-09-27 15:00:00 +0000

woof gravatar image

It is possible to set cookies in Next.js when using Node.js (Express) as the backend. You can use the cookie-parser middleware in your Express server to parse and set cookies.

Here's an example code snippet:

// server.js

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

const app = express()

app.use(cookieParser())

app.get('/', (req, res) => {
  res.cookie('myCookie', 'hello world', { maxAge: 900000, httpOnly: true })
  res.send('Cookie set!')
})

module.exports = app

In the above code, we're setting the myCookie cookie with a value of 'hello world'. The maxAge parameter determines how long the cookie will persist (in milliseconds), and the httpOnly parameter ensures that the cookie can only be accessed via HTTP requests (i.e. not via JavaScript).

Once the cookie is set, you can access it in your Next.js app by using the getInitialProps method:

// pages/index.js

import fetch from 'isomorphic-unfetch'

const Index = ({ myCookie }) => {
  return (
    <div>
      <p>The value of myCookie is: {myCookie}</p>
    </div>
  )
}

Index.getInitialProps = async ({ req }) => {
  const res = await fetch('http://localhost:3000')
  const myCookie = req.headers.cookie.split('=')[1]
  return { myCookie }
}

export default Index

In the above component, we're using fetch to make a request to the Express server and retrieve the myCookie value from the req.headers.cookie header. We can then pass this value as a prop to our component.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss

Add Answer


Question Tools

Stats

Asked: 2022-10-29 11:00:00 +0000

Seen: 17 times

Last updated: Sep 27 '21