首页 > 解决方案 > MERN STACK throw new ERR_HTTP_HEADERS_SENT('set'); 获取 github 存储库

问题描述

我是 MERN 堆栈的新手,一切正常,但是当我尝试从 Github 中提取 Repos 时,它会出错throw new ERR_HTTP_HEADERS_SENT('set'); .

我不知道该怎么办尝试了许多解决方案,但它不起作用。下面附上代码和错误

已经导入的配置和请求包

代码:-

    // @route   GET /github/:username
// @desc    GET repos
// @access  public
router.get('/github/:username',(req,res)=>{
  try {
      const options = {
        uri: `https://api.github.com/users/${req.params.username}/repos?per_page=5&sort=created:asc&client_id=${config.get('githubClientId')}&client_secret=${config.get('githubSecret')}`,
        method : 'GET',
        headers : {'user-agent':'node.js'}
      };
      
      request(options,(error,response,data)=>{
        if(error) console.error(error);
        if(response.statusCode != 200){
          res.status(404).json({'msg':'Profile not found'});
        }

        res.json(JSON.parse(data));

      });
  } catch (err) {
    console.error(err.message);
    res.status(500).send('Server error');
  }
});

错误 :-

_http_outgoing.js:561
    throw new ERR_HTTP_HEADERS_SENT('set');
    ^

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
    at ServerResponse.setHeader (_http_outgoing.js:561:11)
    at ServerResponse.header (D:\src\mern_projects\DevConnector\node_modules\express\lib\response.js:771:10)
    at ServerResponse.send (D:\src\mern_projects\DevConnector\node_modules\express\lib\response.js:170:12)    at ServerResponse.json (D:\src\mern_projects\DevConnector\node_modules\express\lib\response.js:267:15)    at Request._callback (D:\src\mern_projects\DevConnector\routes\api\profile.js:281:13)
    at Request.self.callback (D:\src\mern_projects\DevConnector\node_modules\request\request.js:185:22)   
    at Request.emit (events.js:400:28)
    at Request.<anonymous> (D:\src\mern_projects\DevConnector\node_modules\request\request.js:1154:10)    
    at Request.emit (events.js:400:28)
    at IncomingMessage.<anonymous> (D:\src\mern_projects\DevConnector\node_modules\request\request.js:1076:12)
    at Object.onceWrapper (events.js:519:28)
    at IncomingMessage.emit (events.js:412:35)
    at endReadableNT (internal/streams/readable.js:1317:12)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  code: 'ERR_HTTP_HEADERS_SENT'
}

请解决这个问题,非常感谢提前。谢谢你

标签: javascriptnode.jsexpresswebmern

解决方案


推荐阅读