简体   繁体   English

通过 JavaScript 将数组发送到 nodejs

[英]Sending array via JavaScript to nodejs

I have 2 working scripts which I am trying use in conjunction with each other first is my JavaScript:我有 2 个工作脚本,我尝试将它们相互结合使用,首先是我的 JavaScript:

   <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
            alert(msg[i]);
        }
        // the old code
        document.getElementById("message").innerHTML = msg.join("&#013;");
    }
</script> 

and then I have a nodejs script which accepts postdata然后我有一个接受 postdata 的 nodejs 脚本

http://localhost.com/?name=Data

basically where it says基本上它说的地方

alert(msg[i]);

in my JavaScript I would like to postdata to在我的 JavaScript 中,我想将数据发布到

localhost.com/?name= msg[i] << this is an example of what I want to do localhost.com/?name= msg[i] << 这是我想做的一个例子

  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 (":");
    var exec = require('child_process').exec;
    console.log(value[0]);
    exec ("casperjs test.js " + value[0] + " " + value[1] + '\n',function(err, stdout, stderr) {

        response.end('data sent');

    });

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

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

my JavaScript so far到目前为止我的 JavaScript

<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("https://new-c9-ashg1990.c9.io" + "?" + $.param({name: msg[i]}), data);
            alert(msg[i]);
        }
        // the old code
        document.getElementById("message").innerHTML = msg.join("&#013;");
    }
  </script>

How can I fix my code so it shows my response from node.js?如何修复我的代码,以便它显示来自 node.js 的响应?

I think you use jQuery in your project.我认为您在项目中使用了 jQuery。

So jQuery provides good method to do that things $.param所以 jQuery 提供了很好的方法来做这件事$.param

This is official example:这是官方示例:

var myObject = {
  a: {
    one: 1,
    two: 2,
    three: 3
  },
  b: [ 1, 2, 3 ]
};
$.param(myObject);
// result is "a%5Bone%5D=1&a%5Btwo%5D=2&a%5Bthree%5D=3&b%5B%5D=1&b%5B%5D=2&b%5B%5D=3"

In your case you have在你的情况下,你有

function send(message){
   var message = message || "";
   var url = "SOME_URL";
   $.ajax({
     url: url,
     method: "GET",
     data: { name: message },
     success: function(res){
       alert(res);
     },
     error: function(e){
       alert(e);
     }
   });
}
send("some text or message");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM