1

The url server will append the path to navigate the modules. I get an error when nextjs custom server appends prefix: /product-ui I don't understand what's wrong with my custom server file about router mapping

I tried to configure the URL conversion but it still doesn't work

const express = require('express');
require('dotenv').config();
const next = require('next');
const { parse } = require('url')

const orderRoute = require('./routes/order.route');
const promotionRoute = require('./routes/promotion.route');
const port = parseInt(process.env.PORT, 10) || 3000;
const dev = process.env.NODE_ENV !== 'production';
const nextApp = next({ dev })
const handle = nextApp.getRequestHandler()

const VERSION_API = 'v1';

const server = express();
nextApp.prepare().then(() => {
  server.use(express.json());

  server.use(`/${VERSION_API}/api/order`, orderRoute);
  server.use(`/${VERSION_API}/api/promotion`, promotionRoute);

  server.get('/order/:orderId', (req, res) => {
    const { orderId } = req.params;
    const actualPage = `/order/${orderId}`;
    const queryParams = req.query;
    return nextApp.render(req, res, actualPage, queryParams);
  })

  server.get('*', (req, res) => {
    return handle(req, res)
  })

  express().use("/product-ui", server).listen(port, err => {
    if (err) throw err
    console.log(`> Ready on http://localhost:${port}`)
  })
})

error detail

SUN
  • 13
  • 3

0 Answers0