2016-08-05 22 views
2

我正在嘗試在Azure移動應用程序中爲易桌子編寫自定義腳本,並具有以下代碼。執行時,我收到一個錯誤,指出「發送後無法設置標題」。我究竟做錯了什麼?拋出自定義異常Azure移動應用程序易桌面腳本

table.insert(function (context) { 
    var request = context.req; 
    var response = context.res; 
    var customer = context.item; 
    var isactive = customer.active; 
    if (isactive ==="false"){ 
     response.status(406).send('Customer Error`); 
     //response.end(); 
     return; 
    } 
    else { 
     return context.execute(); 
    } 
} 

回答

2

這通常是由res.send或res.json被每次請求多次調用引起的。我將你的代碼複製到一個空白的應用程序中的表中,並且不能重現錯誤。在您的應用程序中的其他地方必定有導致錯誤的地方。

如果您使用類似郵遞員的方式發佈到表端點,您是否看到406響應以及控制檯中的錯誤,或者只是錯誤?如果您看到406響應,則在返回406之後,將在管道中的某處執行res.send。如果沒有,它發生之前。

你有沒有其他正在執行的中間件?

+0

我剛想到的另一件事 - 你使用的是什麼版本?幾個月前發佈的一個版本解決了一個問題。 –

+0

它在控制檯以及郵遞員上發佈。我添加了一個catch塊並記錄了錯誤後,它在控制檯上發佈。我沒有其他中間件。但我最終通過爲這段代碼添加了一個自定義中間件來工作。 – MSJ

+0

然而我有一個新問題。在執行和查詢使用自定義中間件後,我回到table.insert(function(context))。如果我正在使用返回的context.execute()方法,我該如何操作回到瀏覽器的響應(例如,我想刪除密碼字段)? – MSJ