Node.js 节点js出现错误[ERR_HTTP_HEADERS_SENT]
当我Node.js 节点js出现错误[ERR_HTTP_HEADERS_SENT],node.js,express,http-headers,Node.js,Express,Http Headers,当我在我的网站中呈现页面时有时会出现此错误,状态代码将为404,并告诉我该页面未找到 那是错误的 Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client at ServerResponse.setHeader (_http_outgoing.js:518:11) at ServerResponse.header (D:\Node Js\MaxCourse\node_mo
在我的网站中呈现页面时
有时会出现此错误,状态代码将为404
,并告诉我该页面未找到
那是错误的
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at ServerResponse.setHeader (_http_outgoing.js:518:11)
at ServerResponse.header (D:\Node Js\MaxCourse\node_modules\express\lib\response.js:771:10)
at ServerResponse.send (D:\Node Js\MaxCourse\node_modules\express\lib\response.js:170:12)
at done (D:\Node Js\MaxCourse\node_modules\express\lib\response.js:1008:10)
at tryHandleCache (D:\Node Js\MaxCourse\node_modules\ejs\lib\ejs.js:278:5)
at View.exports.renderFile [as engine] (D:\Node Js\MaxCourse\node_modules\ejs\lib\ejs.js:489:10)
at View.render (D:\Node Js\MaxCourse\node_modules\express\lib\view.js:135:8)
at tryRender (D:\Node Js\MaxCourse\node_modules\express\lib\application.js:640:10)
at Function.render (D:\Node Js\MaxCourse\node_modules\express\lib\application.js:592:3)
at ServerResponse.render (D:\Node Js\MaxCourse\node_modules\express\lib\response.js:1012:7)
这就是我的代码,我只带了一页代码,但我用这样的代码到另一页,我在Product类中有另一个方法,但我只写了这个fetchAll方法
const mongodb = require("mongodb");
const getDB = require("../utils/database").getDB;
class Product {
constructor(title, imageUrl, description, price, id) {
this.title = title;
this.imageUrl = imageUrl;
this.description = description;
this.price = price;
this._id = id ? new mongodb.ObjectID(id) : null;
}
static fetchAll() {
const db = getDB();
return db
.collection("products")
.find()
.toArray()
.then((products) => {
console.log(products);
return products;
})
.catch((err) => console.log(err));
}
}
exports.getProducts = (req, res, next) => {
Product.fetchAll()
.then((products) => {
res.render("admin/products", {
prods: products,
pageTitle: "Admin Products",
path: "/admin/products",
});
})
.catch((err) => console.log(err));
};
但是如果我在主文件中删除这个,问题就会得到解决
app.use((req, res, next) => {
User.findByID("5f60b732b8ebac9a702caba9")
.then((user) => {
req.user = user;
next();
})
.catch((err) => console.log(err));
next();
});
你有比赛条件。在运行
res.send()
或类似操作后,如果您正在使用res
执行操作,则应添加触发此错误的端点。如果你想得到这方面的帮助,你需要包含一些代码。请问我如何才能添加端点?!我该怎么办@但是我应该包括什么请告诉我@恩斯列夫