我已经完成了使用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。
答案 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
。