2017-04-17 67 views
-1

你將如何停止在NodeJs中執行代碼的其餘部分(而不是用process.exit()聲明應用程序只是說這是要執行的最後一行)。如何停止執行NodeJs代碼的其餘部分?

在正則JavaScript中你有退出(),但似乎並沒有在nodejs中工作。

下面的情況是:

connection.query(sql, [req.session.sessionUserPackagePassword] , function(err, rows, fields) { 
    if (!err) { 
    var userFound = false; 
    for(var i=0; i< rows.length; i++) { 
     // Make the comparaison case insensitive 
     if ((rows[i].deliveredToUser).toLowerCase() == `no`) { 
     userFound = true; 
     console.log(userFound); 
     [...] 
    } 
} 
if (!userFound) { 
    res.render('pickup/errorAlreadyDelivered', {}); 
    // exit here 
} 

console.log(userFound); 

// If the query fails to execute 
} else { 
    console.log('Error while performing Query.'); 
    res.render('errorConnection', {}); 
} 
}); 
connection.end(); 




    // Update the query to say the box has been delivered to user and specify time 



// Establish the connection 
[...] 


    res.render('pickup/openPackageClose', { 
      title: '', 
      helpButtonURL: '/help/help-dropPackage', 
      helpButtonTitle: 'Help' 


     }); 



    }); 

本質上講,當這一條件得到滿足,我想不被執行的代碼的其餘部分

if (!userFound) { 
     res.render('pickup/errorAlreadyDelivered', {}); 
     // exit here 
} 
+0

要停止執行一段代碼,請使用break; –

+0

把你想要避免執行的代碼放到else塊中。 –

+0

您確定要退出而不調用'connection.end()'? –

回答

1

connection.end();然後return;好像它可能工作爲你。

+0

這假設你在一個回調函數中,看起來很可能。 –

+0

返回不結束其餘的代碼。問題是你在下面有另一個res.render,並且一旦if語句被觸發,最後的render就會在控制檯上顯示一個錯誤,表示不能發送多個頭文件。 – John

+0

我更新了代碼以提供嘗試並使其更加清晰 – John

1

所以根據你對我的其他答案的評論,這聽起來像你的程序結構不是我認爲的那樣。這應該工作:

connection.query(sql, [req.session.sessionUserPackagePassword] , function(err, rows, fields) { 
    if (!err) { 
    var userFound = false; 
    for(var i=0; i< rows.length; i++) { 
     // Make the comparaison case insensitive 
     if ((rows[i].deliveredToUser).toLowerCase() == `no`) { 
     userFound = true; 
     console.log(userFound); 
     [...] 
    } 
} 

if (!userFound) { 
    res.render('pickup/errorAlreadyDelivered', {}); 
    connection.end(); 
} else { 
    console.log(userFound); 
    console.log('Error while performing Query.'); 
    res.render('errorConnection', {}); 
    connection.end(); 
} 
+0

這是您打算髮生的事情嗎?讀這段代碼讓我覺得邏輯有問題。 –

+0

讓我縮進代碼並在我的初始帖子中提供更新 – John

+0

感謝您的更新,如果你看看我的操作系統中的更新代碼,我不能準確地添加像這樣的else條件,因爲代碼低於連接的末尾,並且問題在於另一個呈現在下面的問題。 – John

相關問題