我對節點很陌生,遇到了按順序運行某些函數和使用回調的問題。我曾嘗試使用異步模塊,但是,我認爲我錯過了一些東西,因爲它不按順序執行我的功能。按順序運行nodejs中的函數
在最簡單的話來說,我想在網址參數,然後的形式來獲取一些數據:1. 它們寫入一個文件 2 LPR打印出來 3.刪除文件
我當前的代碼在打印之前刪除文件。在步驟2之前的步驟3.是否有人會提供一些關於如何最好地執行這些操作的建議?提前致謝。
router.get('/zplprint/:barcode/:zpl', function(req, res) {
var zpl = req.params.zpl;
var filename = appDir + "/uploads/" + req.params.barcode + ".zpl";
console.log(req.params.zpl);
res.send("received zpl: " + req.params.zpl);
async.series([
function(callback){
fs.writeFile(filename, zpl, function(err) {
if(err) {
callback(err);
return;
}
console.log("The file was saved! to "+filename);
callback();
});
},
function(callback){
CupsPrinterName = nconf.get('Print:PrinterName');
console.log(CupsPrinterName);
var cmd = 'lpr -P ' + CupsPrinterName + ' -o raw ' + filename;
exec(cmd, function(error, stdout, stderr) {
// command output is in stdout'
console.log(cmd);
console.log("file printed");
});
callback();
},
function(callback){
fs.unlink(filename, function (err) {
console.log(' deleting ' + filename);
});
callback();
}
]);
});
我知道我失去了一些東西。這似乎已經成功了。謝謝 – neohusky