Я учусь использовать Next. js с Express и MySQL db.
Я создаю конечную точку для получения данных из базы данных, но она работает только в режиме разработки (npm запустить dev). В производственном режиме (npm run build> npm start) все страницы, которые должны извлечь данные из конечной точки Express с getInitialProps, показывают 500 Internal Server Error, а в консоли выводит сообщение «Недопустимый ответ json». тело в http://localhost: 3000 / API / SomeData причина: неожиданный toen <в JSON в позиции 0 'Итак, я пытаюсь открыть <a href="http://localhost:3000/api/somedata" rel="nofollow noreferrer">http://localhost: 3000 / API / SomeData возвращает 404 страницы. В разработке / api / somedata возвращает JSON, как я и ожидал, также как и страница, которая должна извлекать данные из конечной точки Express с помощью getInitialProps.
Вот как я могу создать Express маршрут API
server.get('/api/somedata',(req,res)=>{ db.query('select * from thetable order by thedate desc', function(err,rows,field){ res.json(rows) }) })
Затем я получаю данные с помощью getInitialProps
static async getInitialProps(ctx){ const url=ctx.req?ctx.req.protocol+'://'+ctx.req.get('host'):''; const d=await fetch(url+'/api/somedata'); const data=await d.json(); return {thedata:data} }
Как мне заставить его работать и в производственном режиме?