在ejs中使用节点模块/ .js函数

时间:2015-01-15 19:06:37

标签: javascript html node.js module

我最近开始使用JavaScript和Node,但我在处理.ejs文件时遇到了麻烦。

我试图在我的页面中实现一个按钮,该按钮在textarea中插入一个字符串并运行一个函数来评估该字符串是否为xml代码(更准确地说是一个广泛的标记,但是那个' s不是重点。)

所以,我有这样的事情:

<div class="clear vastClass">
    <h3> Vast Tag </h3>
<div class="vastClass" hidden>
    <div>
        <p>Please validate your code!</p>
        <input type="button" id ="buttonVast" value="Validate">
    </div>

    <textarea id="vastTag" name="vastTag" class="form_creatives" value="">Insert you Vast Tag</textarea>

</div>
</div>

<script>
    $("#buttonVast").click(function(){
        // TODO
    }
</script>

所以这里有几个问题:

我试图使用节点模块xml2js查看文本并且我已经在线阅读了一些内容(我不知道它们是否正确)。 e.g:

  • 浏览器正在运行.ejs文件,因此,如果我尝试要求(&#39; xml2js&#39;),则无法理解
  • 我尝试使用browserify软件包,但我看不到它的工作原理
  • 如果该文件位于我的公共资源文件夹中,我只能调用file.js。 (事实上​​,我试图访问的任何文件都有404页面未找到异常)

所以,我的问题是,如果有人对我可以在我的脚本中使用节点模块的方法有任何提示,或者如果可以在file.js中定义一个函数然后将此函数调用到脚本中,或者,如果有人知道browserify如何工作,以及它是否可用于解决我的问题。

2 个答案:

答案 0 :(得分:0)

要检查textarea中的字符串是否为xml,您可以使用正则表达式。这将检查输入是否以

这是一个工作小提琴:http://fiddle.jshell.net/mikemjharris/j1nL8rz0/

检查xml的具体代码:

function checkXML () {
  var textToCheck = $('textarea').val();
  if( textToCheck.match(/\<\?xml /) ) {
    alert('this is xml!');
  } else {
    alert('not xml');
  }
}

答案 1 :(得分:0)

感谢@mikemjharris的回复,但它并没有真正解决我的问题。

经过几天的搜索,我发现了如何使用browserify,所以我自己也会回答。

首先,我必须创建一个.js文件,比如说main.js,我声明并定义了我想要使用的所有函数,例如。

Main.js:

var xml2js = require('xml2js')
validateVast = function(vast){
    var parser = xml2js.Parser()
    parser.parseString(vast, function(err, result){
        if(result && !err){
            console.log(result)
        }
        else{
            console.log(err.toString())
        }
    })
} 

然后,在终端中,我使用以下命令将Bundle文件添加到我的公共资源文件夹:

browserify folder/main.js -o public/js/xml2jsBundle

然后,在我的html文件中,我添加了一行

<script src="js/xml2jsBundle.js"</script>

然后能够在html的主体中调用我的函数,如:

<body>
    <script src="js/xml2jsBundle.js"</script>
    <input type="button" value="Validate" class="bt_Add" onClick="validate()">
    <textarea id="vastTag" name="vastTag" class="form_creatives" value=""></textarea>

    <script type="text/javascript">

        function validate(){
            var vast = $("#vastTag").val()
            validateVast(vast)
        }
    </script>
</body>

嗯,我想这就是它。 谢谢你的帮助,再见