Ошибка Cannot set headers after they are sent to the client
заключается в том, что вы звоните next()
сразу после вызова res.send()
в обработчике маршрута /
. Вы заканчиваете запрос на res.send()
, поэтому вам не следует звонить next()
сразу после. Используйте next
только в том случае, если вы пытаетесь передать управление следующей функции промежуточного программного обеспечения.
app.use('/', (req, res, next) => {
console.log('I will pass control to the next middleware/handler.')
next()
})
app.get('/', (req, res, next) => {
res.send("<h1>Home</h1>")
})
Также используйте app.use
для монтирования определенных c функций промежуточного программного обеспечения по указанным путям, как в пример выше.
Вместо этого вам нужно использовать app.get
для правильной обработки маршрутов.
const express = require("express");
const app = express();
const port = 1014;
app.use("/", (req, res, next) => {
// will only get triggered if you access `home`
console.log(`HelloWorld`);
next();
});
app.get("/", (req, res, next) => {
res.send("<h1>Home</h1>");
});
app.get("/about", (req, res, next) => {
res.send("<h1>About page</h1>");
});
app.listen(port, () => console.log(`Listening on port ${port}`));
Теперь вы должны иметь доступ к http://localhost:1014/
и http://localhost:1014/about
без вопросы.