Alfresco网页脚本:如何提前停止处理或返回?

时间:2014-09-01 11:13:04

标签: alfresco

我在Alfresco中有一个Web脚本,当我在HTTP请求中传入正确的参数时,它可以工作。我添加了类似于此代码段(source)的验证。

如果我发现我的验证步骤失败,我该怎么告诉Alfresco停止处理webscript?(如果可能的话,我想在没有else块的情况下这样做。)

// extract folder listing arguments from URI
var verbose = (args.verbose == "true" ? true : false);
var folderpath = url.templateArgs.folderpath;

// search for folder within Alfresco content repository
var folder = roothome.childByNamePath(folderpath);

// validate that folder has been found
if (folder == undefined || !folder.isContainer) {
   status.code = 404;
   status.message = "Folder " + folderpath + " not found.";
   status.redirect = true;
   // ********* HOW DO I TELL ALFRESCO TO STOP PROCESSING HERE? ************
}

// perform some business logic with the parameters that passed validation......
// ********* I DO NOT WANT TO COME HERE IF VALIDATION FAILS ************

// construct model for response template to render
model.verbose = verbose;
model.folder = folder; 

1 个答案:

答案 0 :(得分:3)

这里的技巧是将代码包装在一个函数中(通常按惯例称为main)。如果要停止处理,只需调用该函数并从该函数返回。像这样:

function main() {
  // extract folder listing arguments from URI
  var verbose = (args.verbose == "true" ? true : false);
  var folderpath = url.templateArgs.folderpath;

  // search for folder within Alfresco content repository
  var folder = roothome.childByNamePath(folderpath);
  // validate that folder has been found
  if (folder == undefined || !folder.isContainer) {
    status.code = 404;
    status.message = "Folder " + folderpath + " not found.";
    status.redirect = true;
    return;
  }
  // Do stuff with the folder

}

main();