Express API Route Возвращает 404 в следующем. js производство, но работает в режиме разработки - PullRequest
0 голосов
/ 17 февраля 2020

Я учусь использовать 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} }

Как мне заставить его работать и в производственном режиме?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...