构建用于生产和开发的构建,但是在运行FE时,API无法正常工作

时间:2019-04-11 11:29:27

标签: node.js webpack

我已经完成了使用webpack为我的节点服务器进行开发和生产的构建。我的构建将保存在dist / main.js文件中。当我运行“ npm start”时,它将正确运行dist / main.js,快速服务器正在侦听,并且mongoDB已连接。但是,当我启动我的应用并点击登录时,API会显示-无法POST / login

我是webpack的新手,正在此寻求修复。

我的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"
  },

我得到的实际结果是,

请求网址:http://localhost:23457/login
请求方法:POST
状态码:404未找到
远程地址:[:: 1]:23457
推荐人政策:no-referrer-when-downgrade

登录本身失败。

我认为dist版本不提供route.ts文件的API。

1 个答案:

答案 0 :(得分:0)

  

我的构建将保存在dist/main.js中。当我运行npm start时,它可以正确运行node dist/main.js,表示Express服务器正在侦听并且mongoDB已连接。

Webpack的工作是构建文件,即根据您的源代码构建dist/main.js。由于它正确地运行了此脚本,因此Webpack的工作已经完成,并且Webpack可以正常工作,并且可以在您的项目中按预期进行。

404错误源自您的快递服务器。确保您的快递服务器可以处理对/login的POST请求,例如,诸如:

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