如何从javascript / jquery / webpage多次调用nodejs

时间:2013-05-21 21:13:00

标签: javascript jquery node.js

我在C ++中编写了一个nodejs插件,我试图在本地托管的网页中用jQuery调用它。我已经读过因为相同的原始策略所以无法直接调用nodejs所以我应该使用jsonp。注意:我对jquery,nodejs和json(p)都很陌生,但我很喜欢冒险。我现在使用以下代码:

node_test.js:

var mylib = require("./mylibrary");
var http = require("http");

http.createServer(function(req, res) {
    console.log("Received request: " + JSON.stringify(req.url));
    res.writeHead(200, {"Content-type": "text/plain"});
    res.end('_testcb(\'{"message": "' + mylib.my_awesome_function() + '"}\')');
}).listen(1337);

的index.html:

index.html:
<DOCTYPE HTML>
<html>
    <head>
        <title>
            NodeJS test
        </title>
        <link rel='stylesheet' type='text/css' href='style.css'/>
        <script type='text/javascript' src='jquery.js'></script>
    </head>
    <body>
    <div id="test"></div>
    <script>
        $(document).ready(function() {
            $.ajax({
                url: "http://127.0.0.1:1337/",
                dataType: "jsonp",
                jsonpCallback: "_testcb",
                cache: false,
                data: "test_data",
                timeout: 5000,
                success: function(data) {
                    $("#test").append(data);
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    alert('error ' + textStatus + " " + errorThrown);
                }
            });
        });
    </script>
    </body>
</html>

如果我在浏览器中运行node node_test.js并查看index.html,我的函数会被调用。但是,我希望能够从我自己的nodejs库中执行多个函数。我想到以某种方式解析我发送到我的nodejs应用程序的数据,并通过一个大的开关案例运行它,有点像这样:

var reply = "";
switch (data) {
    case 1:
        reply = mylib.my_awesome_function();
        break;
    case 2:
        reply = mylib.my_cool_function();
        break;
    // repeat for every function I have
}
// send reply

但我不确定这是否是预期的方法。有没有更好/更聪明的方法从网页上的jQuery / javascript中多次调用nodejs?

0 个答案:

没有答案