Node.js javascript和html脚本无法正常运行

时间:2014-02-17 17:41:13

标签: javascript jquery html node.js

好吧所以我想让我的html / javascript与我的nodes.js服务器通信。 我想要做的是将数据发布到我的nodes.js服务器然后将结果回显到我的html / javascript。

通信正如节点一样,我有post.ata的console.log,我可以通过运行节点控制台看到它。

问题是我需要javascript等待node.js函数完成,然后将节点生成的文本回显给html页面。

我无法让这个工作继续我的html / javascript

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<html><head><title>Welcome To ....</title>
<script type="text/javascript">
function textareaToArray(t){
    return t.value.split(/[\n\r]+/);
}
function showArray(msg){
    for(i = 0; i < msg.length; i++) {
        // something per item
        var data = {}; //your own data
     $.post("http://192.168.2.109:8111" + "?" + $.param({name: msg[i]}), data);

    }
    // the old code
    document.getElementById("message").innerHTML = msg.join("&#013;");
}
</script>
</head>
<body>
<h1> WELCOME TO .... </h1>
<form>
<textarea rows="10" cols="60" name="alpha"></textarea>
<br>
<input type="button" value="show array" onclick="showArray(textareaToArray(this.form.alpha ))">
</form>
<br>
<textarea id="message" rows="6" cols="60" name="message"></textarea>
</body></html>

这是我的节点脚本

  var url = require('url')
  var http = require('http')
  var server = http.createServer(function (request, response) {
  var queryData = url.parse(request.url, true).query;
  response.writeHead(200, {"Content-Type": "text/plain"});

  if (queryData.name) {
    // user told us their name in the GET request, ex: http://host:8000/?name=Tom
    var basevalue = queryData.name;
    var value = basevalue.split (":");

    console.log(value[0]);
    console.log(value[1]);

    var exec = require('child_process').exec;

    exec ("casperjs test.js " + value[0] + " " + value[1] + '\n',function(err, stdout, stderr) {

        response.end(stdout);

    });

  } else {
    response.end("Contact Admin - Not Working\n");
  }
});

// Listen on port 8000, IP defaults to 127.0.0.1
server.listen(8111);

有人可以告诉我并帮我解决这个问题

1 个答案:

答案 0 :(得分:1)

IT很简单。 你需要在回调中调用警报。所以当邮件请求完成时它将被执行。 改变你的几行如下

$.post("http://192.168.2.109:8111" + "?" + $.param({name: msg[i]}), function(data){

    // data contains your response from server. now you can handle it as you want
});