Error: Cannot set headers after they are sent to the client when I want to display in ejs file

Error: Cannot set headers after they are sent to the client when I want to display in ejs file

我正在尝试在 json object 中搜索我需要的数据并将其放入 ejs 文件,但出现此错误:发送后无法设置 headers给客户。 我必须以其他方式显示数据吗?

app.set('view engine', 'ejs');
router.get('/:categoryId', (req, res) => {
  for (let i = 0; i < jsonSize(jsonObj); i++) {
    if(req.params.categoryId == 'mens' ){
      res.render('categories',
      {
        pageTitle: jsonObj[i].page_title,
        category: jsonObj[i].name,

      });
    }
  }
});

发生这种情况是因为您在循环中执行了 .render 函数。您还需要调整模板以使用一系列类别。

app.set('view engine', 'ejs');
router.get('/:categoryId', (req, res) => {
  const categories = [];
  for (let i = 0; i < jsonSize(jsonObj); i++) {
    if (req.params.categoryId == 'mens') {
      categories.push({
        pageTitle: jsonObj[i].page_title,
        category: jsonObj[i].name,
      });
    }
  }
  res.render('categories', categories);
});