Экспресс-узел возвращает «Cannot Get», другие решения / код не работают. файл загружен - PullRequest
0 голосов
/ 20 октября 2019

tldr

Хорошо, я пытался заставить сервер загрузки файлов работать в течение нескольких дней, и все, что я пытаюсь, просто возвращает, не может получить. В настоящее время я пытаюсь выполнить настройку ниже, но она не работает

код

здесь - server.js

const express = require("express");
const upload = require("./upload");
const cors = require("cors");

var router = express.Router();
var app = express();

const server = express();

var corsOptions = {
  origin: "*",
  optionsSuccessStatus: 200
};

server.use(cors(corsOptions));

router.get("/", function(req, res) {
  res.render("index", { title: "Express" });
});

server.post("/upload", upload);

const port = process.env.PORT || 8000;
app.listen(port, () => {
  console.log(`listening on port ${port}`);
});

Ниже приведена загрузка. JS

const IncomingForm = require("formidable").IncomingForm;

module.exports = function upload(req, res) {   var form = new IncomingForm();

  form.on("file", (field, file) => {
    // Do something with the file
    // e.g. save it to the database
    // you can access it using file.path
    console.log("thisno werk");   });   form.on("end", () => {
    res.json();   });   form.parse(req); };

1 Ответ

0 голосов
/ 20 октября 2019

Давайте обозначим server как результат const server = require('express')(); и router как результат const router = require('express').Router();.

server - это экземпляр вашего сервера Express, а router - это экземпляр маршрутизатора конечных точек API. Вам нужно не только написать свой маршрутизатор router.get();, но вам также нужно установить соответствующие файлы (так называемые контроллеры) для обработки запросов API.

Таким образом, ваш код должен иметь следующую строку: server.use('/', yourController); или просто server.get('/', handlingFunction);, если у вас нет разделов API.

Однако, если вы используете маршрутизаторы, вам нужен первый вариант. Ваш метод POST /upload отлично работает, потому что он настроен на уровне приложения. Но вам нужно исправить метод GET /, поскольку он настроен на уровне маршрутизатора, который не используется в вашем приложении.

Источник: Экспресс-маршрутизация

...