#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