2013-09-19 3 views
0

У меня есть следующие WebScript (disable-affiliate.put.js)WebScript не перенаправляет на ошибках

var spaceNode = customSpacesService.getAffiliatedSpace(args.id) ; 

if(spaceNode == null){ 
    status.code = 404; 
    status.message = "Can't find affiliated"; 
    status.redirect = true; 
} 

spaceNode.addAspect ("cnrps:replaceable"); 
spaceNode.properties["cnrps:motifReplace"] = args.motif; 
var affNonValides = customSpacesService.getEntrepotsDesAffiliesSupprimesErrones(); 
spaceNode.move(affNonValides); 

Проблема заключается в том, когда spaceNode имеет нулевое значение, шаблон состояния должен быть возвращен, как это всегда делает, но исключение брошено говоря Cannot call method "addAspect" of null

Так что очевидно, что перенаправление не произошло, и выполнение скрипта идти, любая помощь, пожалуйста ...

ответ

2

веб-сценарии двигатель будет выполнять сценарий, и после этого проверит переменную status, чтобы понять, что делать с исходным запросом. Это означает, что поток выполнения вашего Javascript не закончится на линии

status.redirect = true; 

, если вы посмотрите на нее, это действительно просто задание, а не вызов метода. Поместите код, который использует spaceNode, в другую ветку, и вы в порядке:

var spaceNode = customSpacesService.getAffiliatedSpace(args.id) ; 

if(spaceNode == null){ 
    status.code = 404; 
    status.message = "Can't find affiliated"; 
    status.redirect = true; 
} 
else { 
    spaceNode.addAspect ("cnrps:replaceable"); 
    spaceNode.properties["cnrps:motifReplace"] = args.motif; 
    var affNonValides = customSpacesService.getEntrepotsDesAffiliesSupprimesErrones(); 
    spaceNode.move(affNonValides); 
} 
Смежные вопросы