Using a custom Express.js server
Writing a custom Express.js server to render Next.js pages is easier than you might think. Let's create a new project and install the following dependencies:
yarn add express react react-dom next
Once we've installed these four packages, we can start writing a custom Express.js server. Let's create an index.js file inside the project root and start by importing the required dependencies:
const { parse } = require('url');
const express = require('express');
const next = require('next');
We now need to instantiate the Next.js app, and we can do that by adding the following code right after the import statements:
const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
Let's complete our server by writing the main function, which takes every incoming GET request and passes it to Next.js for server-side rendering:
async function main() {
  try...