节点js中的辅助函数

时间:2019-07-31 06:38:52

标签: javascript node.js express

我写了这个辅助函数。它可以工作,但是问题是没有forloop不能工作,如果我使用任何其他方法,它会返回[对象授权]我该如何解决这个问题,请帮忙

我使用了其他方法,但是它给了我[对象授权]作为输出

.js文件

app.use(function(req, res, next) {
  CountryData.find({}, function(err, result) {
    if (err) {
      console.log(err)
    } else {

      res.locals.contrycode = function(code1) { //helper function

        for (var i = 0; i <= 500; i++) {

          if (result[i].phoneCode.toString() === code1) {
            return result[i].name.toString();
            break;
          }
        }

      }
      next();
    }
  })
});

.ejs文件

<p> <%= contrycode("93"); %></p> ///function calling

1 个答案:

答案 0 :(得分:1)

实际上不需要for-loop,您可以使用find方法轻松找到该国家/地区:

    res.locals.contrycode = function(code1) { //helper function

         var selectedCountry = result.find(function(country) {
           return country.phoneCode === code1;
         });

         if (selectedCountry) { // country found with this code
           return selectedCountry.name;
         } else {
           return "whatever you want"
         }

      }

请更新您的代码。

我希望它会有所帮助。