node.js导致错误400错误的请求的原因

问题描述 投票:1回答:2

我正在向我的node.js Web应用程序添加一些代码。我添加了此功能,然后抛出了错误400。我通过按Ctrl-Z删除了它,但仍然抛出了错误400。然后,我制作了一个test.js,它是express的最简单实现,仍然收到错误400。这是我的test.js代码:

const app = require("express")();
const http = require("http").createServer(app);
const url = require('url');

app.get("/", function(req, res)
{
    res.sendFile(__dirname + "/test.html");
});

http.listen(3001, function()
{
    console.log("--listening on port 3001");
});

我已经检查以确保我输入的URL正确,端口正确。我认为某些内容已缓存并正在搞砸,因为如果我清除缓存或使用curl,它就会起作用。有什么想法吗?

node.js express http caching http-error
2个回答
0
投票
使用process.cwd()代替__dirname,这会导致错误并生成404。process.cwd()将返回初始化节点的目录。它返回您启动node.js进程的绝对路径。

const app = require("express")(); const http = require("http").createServer(app); const url = require('url'); const path = require('path'); app.get("/", function(req, res) { // res.sendFile(__dirname + "/test.html"); res.sendFile(process.cwd() + "/test.html"); }); http.listen(3001, function() { console.log("--listening on port 3001"); });

或您也可以解析__dirname的路径

const app = require("express")(); const http = require("http").createServer(app); const url = require('url'); const path = require('path'); app.get("/", function(req, res) { __dirname=path.resolve(); res.sendFile(__dirname + "/test.html"); }); http.listen(3001, function() { console.log("--listening on port 3001"); });


0
投票
经过更多研究(感谢评论),我终于找到了问题!我在Cookie中存储的东西过多,它超过了4KB的最大数量。
© www.soinside.com 2019 - 2024. All rights reserved.