节点js错误[ERR_HTTP_HEADERS_SENT]

时间:2020-09-15 13:23:07

标签: node.js express http-headers

当我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();
});

0 个答案:

没有答案