0

在我的应用程序中,我需要将动态数据发布到我的主页中(mani 页面意味着如果我在浏览器中运行我的 url(localhost:3456)意味着将在该页面上显示一个页面)。我如何发布该数据。我有试过这个,但我无法发布数据。谁能帮我解决这个问题。

应用程序.js

     var http = require('http');
     var server = http.createServer(function(req, res){
                  res.writeHead(200, ['Content-Type', 'text/plain']);
                  res.write('Hello ');
                  res.end('World');
                   });
     server.listen(3456);

postdata.js

 var data={"errorMsg":{"errno":34,"code":"ENOENT","path":"missingFile.txt"},"date":"2013-0402T11:50:22.167Z"}
 var options = {
                host: 'localhost',
                port: 3456,
                path: '/',
                method: 'POST',
                data:data,
                header: {
                           'content-type': 'application/json', 
                           'content-length': data.length       
                         }
                 };

 var http=require('http');
 var req;
 req = http.request(options, function(res) {
    var body;
    body = '';
    res.on('data', function(chunk) {
    body += chunk;
  });
 return res.on('end', function() {
    console.log('body is '+body);
  });
  });
 req.on('error', function(err) {
    console.log(err);

});

 req.write(data);
 req.end();
4

3 回答 3

-1
//this is a string
var jsonString = '{"errorMsg":{"errno":34,"code":"ENOENT","path":"missingFile.txt"},"date":"2013-04-03T05:29:15.521Z"}';

//this is an object
var jsonObj = {"errorMsg":{"errno":34,"code":"ENOENT","path":"missingFile.txt"},"date":"2013-04-03T05:29:15.521Z"};

注意字符串中的单引号

request.write(chunk, [encoding])要求块是缓冲区或字符串(参见:http ://nodejs.org/api/http.html#http_request_write_chunk_encoding )

于 2013-04-03T14:22:12.990 回答
-1

你是否已经随 Node 一起安装了 express,如果是这样,你可以设置 Rest Api,你可以在 jQuery 中使用它们并动态绑定数据。请尝试查看 http://expressjs.com/

希望这可以帮助。

于 2013-04-02T12:14:27.000 回答
-1

两件事情。第一的:

var data={"errorMsg:{"errno":34,"code":"ENOENT","path":"missingFile.txt"},"date":"2013-0402T11:50:22.167Z"}

缺少双引号,所以它是无效的语法......因此语法突出显示有问题。

第二:

req.write(data);

应该:

req.write(JSON.stringify(data));

编辑:

根据您的评论,我认为您可能会问如何从 HTTP POST 请求的正文中读取(您的问题措辞非常含糊)。如果是这样,这已经在 Node.js API 中有很好的记录。类似于以下内容:

var server = http.createServer(requestHandler);
server.listen(3456);

function requestHandler (req, res) {
    req.setEncoding('utf8');
    var body = '';
    req.on('data', function (chunk) { body += chunk; });
    req.on('end', function () {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('The body of your request was: ' + body);
    });
}

如果这不是你要问的,你需要澄清你的问题。除非您明确定义它们是什么以及预期结果是什么,否则像“主页”这样的术语没有任何意义。

于 2013-04-02T12:49:18.830 回答