如何在NodeJS中创建类似php的函数

如何在NodeJS中创建类似php的函数,php,html,node.js,ejs,Php,Html,Node.js,Ejs,实际上,我使用了如下函数 function selectBloodGroupNames() { return array("A+", "O+", "B+", "AB+", "A-", "O-", "B-", "AB-", "A1+Ve", "Unknown"); } 上面的函数返回血型列表,可以根据我们的想法进行格式化,可以在下拉列表中显示,也可以在表格中显示 我已将该函数保存在名为functions.php的单独文件中 如何在express模块中的node.js和ejs或基

实际上,我使用了如下函数

function selectBloodGroupNames()
{
    return array("A+", "O+", "B+", "AB+", "A-", "O-", "B-", "AB-", "A1+Ve", 
    "Unknown");
}
上面的函数返回血型列表,可以根据我们的想法进行格式化,可以在下拉列表中显示,也可以在表格中显示

我已将该函数保存在名为functions.php的单独文件中


如何在express模块中的node.js和ejs或基本html模板引擎中使用相同的模板。

要在node.js中使用,可以创建一个单独的文件common.js

 module.exports=function selectBloodGroupNames()
 {
    return ["A+", "O+", "B+", "AB+", "A-", "O-", "B-", "AB-", "A1+Ve", 
    "Unknown"];
 }
然后,在要使用它的文件中,可以包括它,并按如下方式使用它:-

   const Common=require('pathto/common.js');
   let bloodGroupList= Common.selectBloodGroupNames();
   //now you can use it where ever you want 
   console.log(bloodGroupList);  

ejs文件中access数组的完整示例

data.js

 const sampleArray = {
     function1(){
     return ["A+", "O+", "B+", "AB+", "A-", "O-", "B-", "AB-", "A1+Ve", 
        "Unknown"];
      },
   function2() {
     return ["A+", "O+", "B+", "AB+", "A-", "O-", "B-", "AB-", "A1+Ve", 
        "Unknown"];
     }
    }
module.exports = sampleArray;
main.js//呈现ejs文件

const  sampleArray = require('./data');
app.get('/renderEjs', function(req, res) {
  res.set('Content-Type', 'application/javascript');
  res.render('ejsHtmlFileName', { myArray :sampleArray.function1(),myArrayTwo:sampleArray.function2()});
});
ejsFile

<div><p><%= myArray %><%= myArrayTwo %></p></div>


ejs文件中渲染数据的参考链接-

您应该安装babel,以便能够使用ES6 for javascript

npm安装--保存开发巴贝尔核心
然后创建单独的文件config.js。在config.js中:

导出默认配置{
selectBloodGroupNames(){
返回[“A+”、“O+”、“B+”、“AB+”、“A-”、“O-”、“B-”、“AB-”、“A1+Ve”,
“未知”];
}
}
然后在文件中使用函数

从./pathto/Config.js导入配置;
函数名(){
var arr=Config.selectBloodGroupNames();
}

最后,我自己找到了一个解决方案,答案来自@IftekharDani,并自己做了一些修改

functions.js包含多个函数的文件

module.exports = {
    menuTop: function(){
        var data = '<li>'+
        '<a href="/login">Log in</a>'+
        '</li>'+
        '<li>'+
        '<a href="/register">Register</a>'+
        '</li>';
        return data;
    },

    workCheck: function(user){
        if(user === "OLD")
        {
            var data1 = '<h1>OLD user</h1>';
        }
        else
        {
            var data1 = '<h1>Unknown or new user</h1>';
        }
        return data1;
    }
};
home.ejs包含函数内容的文件

功能1

<ul class="nav navbar-nav navbar-right">
    <%- funs.menuTop(); %>
</ul>
功能2

<div class="row">
    <%- funs.workCheck("NEW"); %> 
    /* Here i pass parameter to the function that i call from the external file to which make more dynamic. */
</div>

/*在这里,我将参数传递给我从外部文件调用的函数,使其更具动态性*/

最后我得到了预期的结果!如果伊夫特卡达尼给了我一个想法,我将给予50%的奖励。谢谢大家!

您是否在问如何在JavaScript中创建和填充数组?Ie
return['A+'、'O+'、'B+'、'AB+'、…]不完全一样,实际上我计划创建一个函数,该函数必须在节点js中的项目的每个页面中全局调用,因此您需要一个.js文件,可以包含在其他所有js文件中,就像PHPs include()?是的,@Zim84,而不仅仅是js,我在我的项目中使用NodeJS中的ejs模板引擎,所以我需要在ejs模板引擎上实现这个想法。如果我有下面这样的功能,它是如何工作的<代码>函数成功消息($message){echo''.$message.

';}
您的ans完全符合我的观点!但是我在data.js中使用了不止一个函数,我将在views.ejs文件中使用这些函数n个函数,因此我无法在main.js文件中渲染期间定义每个函数!我已经更新了我的答案,请检查..你需要这样吗?ans很好!你已经回答了我的期望,但这就像硬编码将不会自动,如果有10到15个功能必须添加到view.ejs文件!在渲染过程中,我需要在main.js文件中定义15函数,而且在渲染过程中,我还必须为许多页面定义15函数,这将增加代码行数!在main.js文件中!现在,我第二次更新我的答案,请检查您是否没有理解我的观点@IftekharDani。你正在定义每一个功能!{myArray:sampleArray.function1(),myArrayTwo:sampleArray.function2()}我想问的是,如果有20到25个函数,我们如何定义它!这就是我的问题?对于单个页面,如果我们定义了25倍的含义!想想其他网页!如果有50页,我需要通过25个功能,每50页分别!因此,像php这样的简单代码调用像“”这样的行,functions.php每50页返回25个函数!
<div class="row">
    <%- funs.workCheck("NEW"); %> 
    /* Here i pass parameter to the function that i call from the external file to which make more dynamic. */
</div>