Сборка для производства и разработки - это сборка, но во время работы FE API не работает - PullRequest
0 голосов
/ 11 апреля 2019

Я завершил разработку и производственную сборку для моего сервера узлов с помощью веб-пакета.Моя сборка будет сохранена в файле dist / main.js.Когда я запускаю «npm start», он правильно запускает dist / main.js, экспресс-сервер прослушивает и подключается mongoDB.Но когда я запускаю свое приложение и нажимаю на кнопку входа, API-интерфейс говорит: «Не удается POST / логин

Я новичок в веб-пакете и ищу исправление в этом.

Мой webpack.config.jsниже,

module.exports = {
    module: {
      rules: [
        {
          test: /\.js$/,
          exclude: /node_modules/,
          use: {
            loader: "babel-loader"
          }
        }
      ]
    },
    target: 'node',
    node: {
      dns: 'mock',
      net: 'mock',
      fs: 'empty',
      tls: 'empty',
      module: 'empty'
      }
  };

Сценарии Package.json будут,

"scripts": {
    "start": "node dist/main.js",
    "dev": "webpack --mode development ./src/index.ts --output ./dist/main.js",
    "prod": "webpack --mode production ./src/index.ts --output ./dist/main.js"
  },

Фактический результат, который я получаю,

URL запроса: http://localhost:23457/login
Метод запроса: POSTКод статуса: 404 не найденУдаленный адрес: [:: 1]: 23457Политика реферера: no-referer-when-downgrade

Сбой при входе в систему.

Я думаю, что сборка dist не обслуживает API-файл файла rout.ts.

1 Ответ

0 голосов
/ 11 апреля 2019

Моя сборка будет сохранена в dist/main.js. Когда я запускаю npm start, он запускается node dist/main.js правильно, экспресс-сервер прослушивает, и mongoDB подключен.

Задача Webpack - создавать файлы, то есть создавать dist/main.js на основе вашего исходного кода. Так как он корректно выполняет этот скрипт, работа Webpack выполнена, и Webpack работает нормально и, как и ожидалось, в вашем проекте.

Ошибка 404 исходит от вашего экспресс-сервера. Убедитесь, что ваш экспресс-сервер может обрабатывать POST-запросы к /login, например, что-то вроде:

const express = require('express');
const app = express();
app.post('/login', (req, res) => {
  // do your stuff here
  // make sure you don't send a 404 here also
});
app.listen(/* ... */)

Не имея доступа к коду вашего сервера, невозможно точно знать, где на вашем сервере произошла ошибка. Убедитесь, что ваш экспресс-сервер регистрирует все ошибки, и вы сами можете знать, что не так, но в основном у вас должно быть что-то, что выглядит выше где-то в вашем коде, иначе ваш сервер ответит 404 для /login.

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