node.js, что вызывает ошибку 400 неверный запрос - PullRequest
1 голос
/ 06 октября 2019

Я добавляю код в мое веб-приложение node.js. Я добавил эту особенность, а затем она выдавала ошибку 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. Есть идеи?

Ответы [ 2 ]

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

После еще одного исследования (и благодаря комментариям) я, наконец, обнаружил проблему!
Я хранил слишком много вещей в файлах cookie, и это превысило максимальный объем в 4 КБ.

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

Используйте 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");
});
...