node.js - 如何在node js中发送响应后调用函数

标签 node.js aws-sdk

下载 Zip 文件后,我需要调用另一个函数来处理 ProcessZip 文件。但我无法在 .send() 之后触发函数 ProcessZipFile():

app.get('/', function (req, res) {
  DownloadZipFile();
});


function DownloadZipFile() {

    var file = fs.createWriteStream('./tmp/student.tar.gz');

    s3.getObject(params
.on('httpData', function (chunk) {

    file.write(chunk);

   })
.on('httpDone', function () {

    file.end();

   })
.send();
   }

function ProcessZipFile() {
     //.....
}

最佳答案

据我所知,在向浏览器发送响应后,您无法调用函数。因为路线已经完成了。我有两个想法给你。

1:将您的 DownloadZipFile() 作为中间件,成功后您将转到 ProcessZipFile() ,然后发送 response()

2:创建一个新的路由,在其中调用 ProcessZipFile() 并通过 ajax 从前端调用此路由

关于node.js - 如何在node js中发送响应后调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43203345/

相关文章:

node.js - 在 NodeJS 中向外行用户隐藏 Web 服务

javascript - Node : How to handle the POST request without using a framework

git - 为什么AWS EB工具不使用分支的默认环境?

javascript - 访问对象时出现 Java Script 错误

没有名称的 Javascript ES6 导入

node.js - 如何在nodejs和express中的一个地方处理异常

amazon-web-services - 开发一个应用程序以从 cloudformation 模板创建堆栈

aws-lambda - DynamoDB - 排序键属性名称

node.js - 是否有可能在 Azure 上获得 IIS 的免费 ssl 证书

java - AWS Java SDK 错误 - IAM 用户的 withPermissionsBoundary