next.js ошибка маршрутизации пользовательского сервера 404 при развертывании

#node.js #reactjs

#node.js #reactjs

Вопрос:

Моя проблема в моем следующем приложении js, в моей форме отправки контактов, оно работает на localhost, но когда я собираюсь развернуть его на ziet now и перейти к использованию формы, возвращается ошибка 404.

 const express = require("express");
const process = require("process");
const bodyParser = require("body-parser");
const next = require("next");
var api_key = '--------------------------';
var domain = '---------------------------';
var mailgun = require('mailgun-js')({apiKey: api_key, domain: domain});

const dev = process.env.NODE_ENV !== "production";
const port = process.env.PORT || 3000;
const app = next({ dev });
const handle = app.getRequestHandler();

app
    .prepare()
    .then(() => {
        const server = express();

        server.use(bodyParser.json());
        server.use(bodyParser.urlencoded({ extended: true }));

        server.post("/api/contact", (req, res) => {
            res.send(req.body);
            const name = req.body.name;
      const email = req.body.email;
      var interest = req.body.interest;
      const message = req.body.message;
  

Я должен возвращать сообщение 200, вместо этого я получаю ошибку 404

Ответ №1:

Вы определяете свои маршруты на централизованном экспресс-сервере! Большое нет, нет. Zeit — это все о бессерверном будущем, поэтому вам действительно следует определить свои маршруты в файле now.json, а затем поместить логику для ваших конечных точек в отдельные бессерверные лямбда-функции (лучше всего 1 лямбда на конечную точку).

Поначалу сложно разобраться в безсерверности, но есть несколько действительно крутых преимуществ. Вот отличное руководство от Zeit по настройке вашего следующего приложения.js / express: https://zeit.co/guides/custom-next-js-server-to-routes