0

我有以下网页脚本(disable-affiliate.put.js

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

所以很明显重定向没有发生并且脚本执行继续,请帮助......

4

1 回答 1

2

Web 脚本引擎将执行您的脚本,然后检查status变量以了解如何处理原始请求。这意味着您的 Javascript 的执行流程不会在该行结束

status.redirect = true;

如果你看它,它实际上只是一个赋值,而不是一个方法调用。将使用的代码放在spaceNodeelse 分支中,你就可以开始了:

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);
}
于 2013-09-19T09:08:39.000 回答