首页 > 解决方案 > 仅当我发送多个请求时nodejs才会崩溃

问题描述

当我同时向服务器发送多个请求时,node js迅雷,但当我一个接一个发送时却没有。nodejs 说。

错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头

(节点:4) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。(拒绝编号:6)

当您向客户端发送两个响应但在我的代码中只发送一个响应时,该错误很常见

这是我的代码

const User = require('../../../modelos/users');

async function getAllValuationsByUserName(req, res, next) {

  let isOwner = false;

  const userId = req.params.id;

  const pagination = {
    skip: Number(req.query.skip),
    limit: Number(req.query.limit)
  }



  if (userId === res.locals.userid) {
    isOwner = true;
  }

  try {

    const user = await User.findOne(
        { userName: new RegExp('^' + userId + '$', "i") },
        {
            'userPhoto.valuations': {
                $slice: [pagination.skip, pagination.limit]
            }
        })

    const valuations = user.userPhoto.valuations
    const total = user.userPhoto.valuations.length

    return res.status(200).send({
        erro: false,
        isOwner,
        valuations,
        total
    })


  } catch (err) {
    console.log(err)
    return res.status(400).send({
        error: true,
        inf: err
    });

  }

}

module.exports = getAllValuationsByUserName

标签: javascriptnode.jsexpress

解决方案


推荐阅读