我正在調試在WebStorm 10.0.4中使用typescript編寫的節點服務器,並且在單步執行代碼時,代碼執行路徑完全更改。變量賦值似乎會中斷並引用不同的(不正確的)對象並中斷我的代碼。調試時節點服務器調試器代碼行爲發生變化
我有一個類CustomerRoutes.ts
它包含不同的方法來處理POST
請求。我註冊端點:
app.post('/Contacts', jsonParser, CustomerRoutes.postContact);
CustomerRoutes.postContact
是被定義爲public static
功能:
public static postContact(request, response) {
if(request.body.$type == 'Person') {
CustomerRoutes.postIndividual(request, response);
} else if(request.body.$type == 'Organization') {
CustomerRoutes.postOrganization(request, response);
}
}
CustomerRoutes.postIndividual
和CustomerRoutes.postOrganization
均爲public static
功能以及。因此,當服務器處於非調試模式時,代碼將按預期執行,並執行分支語句。但是逐步執行代碼時,變量CustomerRoutes
全局變量被重新分配到的request
內容CustomerRoutes.postContact
的範圍之內,你可以在變量CustomerRoutes
已經被重新定義兩次調試器的變量窗口中看到到request
和response
的值。因此,逐步執行代碼和功能postIndividual
和postOrganization
被調用時現,CustomerRoutes
不包含這些功能和POST
失敗,出現異常和錯誤500
我不相信這是任何形式的種族/定時狀態,從而它必須是調試器環境中的一個錯誤。我的直覺是,打字稿變量映射不能正確使用調試器,但我不確定。有沒有人看到過這樣的問題或解決方案的想法?我從來沒有見過這樣的事情。我很高興根據要求發佈更多信息。