Node.js 即使捕获到错误,IBM Cloud也会使nodejs服务器崩溃

Node.js 即使捕获到错误,IBM Cloud也会使nodejs服务器崩溃,node.js,ibm-cloud,ibm-cloud-storage,Node.js,Ibm Cloud,Ibm Cloud Storage,我正在为我的应用程序使用IBM云存储桶。当我试图检索一个不存在的文件时,即使我处理了错误,应用程序仍然会崩溃。这是我的密码 导出的函数: export const getFileStream = (itemName) => { return cos.getObject({ Bucket: bucketName, Key: itemName }).on('error',(err)=>{ console.log("

我正在为我的应用程序使用IBM云存储桶。当我试图检索一个不存在的文件时,即使我处理了错误,应用程序仍然会崩溃。这是我的密码

导出的函数:

export const getFileStream = (itemName) => {
    return cos.getObject({
        Bucket: bucketName,
        Key: itemName
    }).on('error',(err)=>{
        console.log("we've got an error");
        throw err;
    }).createReadStream();
};
在哪里使用

export const getCV = async (req, res) => {
  if (!req.params.id) return res.status(404).json({ message: "Invalid profile id!" });
  await UserModel.findById(req.params.id, '-password').then(async (details) => {
    if (!details) return res.status(404).json({ message: 'User not found!' });
    if (!details.CV) return res.status(404).json({ message: 'No CV found!' });
    res.attachment('CV.pdf');
    res.set("Content-Type", "application/pdf");
    getFileStream(details.CV)
      .on('error', (err) => {
        throw err;
        // return res.status(404).json({ message: err.message });
      })
      .pipe(res);
  }).catch(err => { return res.status(404).json({ message: err.message }); });
};
details.CV
是一个伪造的项目id时,我会得到下面的错误

我的日志和错误显示在控制台中,但服务器仍然崩溃,需要重新启动。 这就是错误:

Server running on port : 9000
Connected to DB successfully
we've got an error
we've got another error
/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/request.js:31
            throw err;
            ^

NoSuchKey: The specified key does not exist.
    at Request.extractError (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/services/s3.js:585:35)
    at Request.callListeners (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/sequential_executor.js:106:20)
    at Request.emit (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/sequential_executor.js:78:10)
    at Request.emit (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/request.js:683:14)
    at Request.transition (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/state_machine.js:14:12)
    at /home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/state_machine.js:26:10
    at Request.<anonymous> (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/request.js:38:9)
    at Request.<anonymous> (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/request.js:685:12)
    at Request.callListeners (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/sequential_executor.js:116:18)
    at Request.emit (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/sequential_executor.js:78:10)
    at Request.emit (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/request.js:683:14)
    at Request.transition (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/state_machine.js:14:12)
    at /home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/state_machine.js:26:10
    at Request.<anonymous> (/home/paul/Documents/ProiectIBM/proiect-ibm/Server/node_modules/ibm-cos-sdk/lib/request.js:38:9) {
  code: 'NoSuchKey',
  region: null,
  time: 2021-05-10T12:37:47.764Z,
  requestId: '1b2c2405-ea63-4a8f-b81c-1746a0214cde',
  extendedRequestId: undefined,
  cfId: undefined,
  statusCode: 404,
  retryable: false,
  retryDelay: 96.14914686040396
}
在端口上运行的服务器:9000 已成功连接到数据库 我们有个错误 我们还有一个错误 /home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibmcossdk/lib/request.js:31 犯错误; ^ NoSuchKey:指定的密钥不存在。 at Request.extractError(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibm cos sdk/lib/services/s3.js:585:35) at Request.callListeners(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibm cos sdk/lib/sequential_executor.js:106:20) at Request.emit(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibm cos sdk/lib/sequential_executor.js:78:10) at Request.emit(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibm cos sdk/lib/Request.js:683:14) at Request.transition(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibm cos sdk/lib/Request.js:22:10) 在AcceptorStateMachine.runTo(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node\u modules/ibm cos sdk/lib/state\u machine.js:14:12) at/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibmcos-sdk/lib/state_-machine.js:26:10 应要求。(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibmcos-sdk/lib/request.js:38:9) 应要求。(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibmcos-sdk/lib/request.js:685:12) at Request.callListeners(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibm cos sdk/lib/sequential_executor.js:116:18) at Request.emit(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibm cos sdk/lib/sequential_executor.js:78:10) at Request.emit(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibm cos sdk/lib/Request.js:683:14) at Request.transition(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibm cos sdk/lib/Request.js:22:10) 在AcceptorStateMachine.runTo(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node\u modules/ibm cos sdk/lib/state\u machine.js:14:12) at/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibmcos-sdk/lib/state_-machine.js:26:10 应要求。(/home/paul/Documents/ProiectIBM/ProiectIBM/Server/node_modules/ibmcos-sdk/lib/request.js:38:9){ 代码:“NoSuchKey”, 区域:空, 时间:2021-05-10T12:37:47.764Z, 请求ID:'1b2c2405-ea63-4a8f-b81c-1746A0214Code', extendedRequestId:未定义, cfId:未定义, 状态代码:404, 可检索:错误, retryDelay:96.14914686040396 }
显示错误和日志。请参阅@data\u henrik,我已经添加了我所指的错误,但是对于该请求的所有错误都会发生完全相同的情况。您没有显示所有代码。如何调用该函数?如何处理返回的异常?@data\u henrik我已经在调用函数的地方添加了整个片段。我有一个“get”路径来检索用户的CV,它使用“getCV”函数。我通过返回404状态和错误消息来处理错误