在快递中跳到另一个之前先完成流程

时间:2015-09-05 15:19:04

标签: node.js asynchronous express

我希望我的应用程序在执行另一个之前完成第一个进程。我怎么能在这里做到?

app.get('/term/:term/amount/:amount',  function(req, res) {
    // your code here
})

我收到错误,因为第一个过程有点慢,因为它正在优化图像。所以我需要确保在执行下面的代码之前完成它。

1 个答案:

答案 0 :(得分:0)

在回调函数中启动第二部分。 e.g。

new Imagemin()
.src('./'+req.file.path)
.dest('./compressed/')
.use(Imagemin.optipng({optimizationLevel: 3}))
.run(function (err, files) {
    //console.log(files[0]);}
    doNext();
});

function doNext() {
  var compress = fs.statSync('./compressed/'+req.file.filename);

  console.log(req.file);
  res.json({
      filename: req.file.filename,
      originalsize: req.file.size,
      compressedsize: compress["size"]
  });
}