使用expressnode.js,在函数中调用函数,在router中exports和require,在router中渲染时交到ejs

using express node.js, call a function in a function and exports and require in router and hand in to ejs when rendering in router

当函数都被导出时,函数内部能否被识别? 这是我的代码

exports.generateUrlWithParam = function(idpUrl,subUrl,param){
  var url = generateUrl(idpUrl, subUrl);

  if(url == null) {
      return null;
  }

  var paramStr = generateParam(param);

  return url + "?" + paramStr;
}

并且这个函数将在 generateUrlWithParam 中使用

exports.generateUrl = function(idpUrl, subUrl) {
    if((idpUrl == null || ""==idpUrl.trim()) && (subUrl == null || ""==subUrl.trim())) {
        return null;
    }

    let url = idpUrl
    if(!idpUrl.endsWith("/")) {
        url += "/";
    }

    url += subUrl;

    url = url.replace(/\/+/g, "/");

    if(url.startsWith("http:/") && !url.startsWith("http://")) {
        url = url.replace(/^http:\//, "http://");
    } else if(url.startsWith("https:/") && !url.startsWith("https://")) {
        url = url.replace(/^https:\//, "https://");
    }

    return url;
}

它们将在 ejs 文件中使用。 显然无法识别 generateUrl

我在我的路由器文件中使用 'require' 这个 js 文件并交给 ejs 文件 如有任何想法,我们将不胜感激。

您可以将此函数引用为 var url = exports.generateUrl(idpUrl, subUrl);