使用node.js在服务器和客户端之间进行通信

时间:2015-05-15 14:30:59

标签: javascript node.js

我有一个node.js服务器: -

// *********** Server that receives orders ************ //

// to use features of the http protocol. // 
var http = require('http');

// initialize to empty string. //
var req = "";

// create the server that will receive an order Request. //
var server = http.createServer(function(req,res) {
  res.writeHead(200, {'content-type': 'text/plain'});
  // when data is successfully received, a success message is displayed. //
  res.on('data', function(data){
        req += data; // received data is appended. //
       console.log("We have received your request successfully.");
  });
});

// An error message is displayed - error event. //
   server.on('error', function(e){
   console.log("There is a problem with the request:\n" + e.message);
  });

// server listens at the following port and localhost (IP). //
server.listen(8000, '127.0.0.1');

然后我有一个node.js客户端: -

var http = require("http"); 
var querystring = require("querystring");
var postOrder = querystring.stringify({
        'msg': 'Hello World!'
});

var options = {
        hostname: '127.0.0.1',
        port: 8000,
        path:'/order',
        method:'POST',
        headers:{
           'Content-Type' :'application/x-www-form-urlencoded',
           'Content-Length' : postOrder.length
        }
};


var req = http.request(options, function(res) {
  console.log('STATUS: ' + res.statusCode);
  console.log('HEADERS: ' + JSON.stringify(res.headers));
  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});

req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
});

// write data to request body
req.write(postOrder);
req.end();

我试图找出如何让客户端将其订单发布到服务器并从服务器获取响应...使用命令行成功消息或错误消息...

目前我在cmd行$ node server.js

上运行服务器

然后运行客户端$ node client.js

但我没有回复。

1 个答案:

答案 0 :(得分:0)

我认为服务器存在问题: 服务器必须是:

http.createServer(function(req, res) {
    if (req.method == 'GET') {

    } else if (req.method == 'POST') {
        var body = '';
        req.on('data', function(data) {
            body += data;
        });
        req.on('end', function() {
         console.log("We have received your request successfully.");
        });
    }
    res.end("ok");
})