当我Render pages in my website
有时收到此错误,Status Code Will Be 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();
});