我在用Node.js将JSON发布到PostBin,但数据格式错误(如您所见:http://www.postbin.org/1cpndqw).

这是我用于测试的代码:

var http = require('http');

var options = {
  host: 'www.postbin.org',
  port: 80,
  path: '/1cpndqw',
  method: 'POST'
};

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.write(JSON.stringify({ a:1, b:2, c:3 }, null, 4));
req.end();

推荐答案

主要是因为JSON不在乎它是如何格式化的,而且你自己也不做任何格式化.如果你在乎的话,你需要的是一个javascript预打印程序,但第一个问题是"你为什么在乎?"

下面是Javascript配方中的prettyprinting个代码.

事实上有很多不同的例子.

UPDATE

好了,现在它在做你想做的事,让我们问问你做得对不对.正如一些人指出的那样,你不需要传输那些额外的换行符、制表符或空格;效率成本很小,可能在2-5%左右,但你永远不知道什么时候可能需要几%.

另一方面,我完全同意,能够以预打印文本的形式读取JSON输出要方便得多.但还有另一种解决方案——你可能仍然在使用浏览器查看这些结果,所以不要为了传输而对其进行预打印,而是使用客户端预打印器.我在Firefox中使用JSONView for ChromeJSONView.许多调试器也会为您预打印JSON结果.

Node.js相关问答推荐

MongoDB-如何验证Document字段以仅允许特定的文件扩展名?

如何在Node.js 中设置图表js的背景色

Mongoose:如何在文档中推送到Caped(有限大小,滚动窗口)数组?

为什么在导出的函数中调用node-sqlite3中的数据库方法时不起作用?

如何使用多个参数完成

仅在一次查询中 MongoDB 上最近的一对位置

如何在docker容器上正确安装nodejs?

无法截取页面截图

为什么 $or 在带有正则表达式的mongoose 中不能正常工作

无法关闭 node.js 中的mongoose 连接

图像存储在后端文件夹中,但使用 multer 和 react.js 在前端找不到

使用 mongoose 查找过go 7 天的注册用户总数

为什么我在生产环境中 deproy Next.js 示例项目时 CSS 不起作用?

我可以通过 JNI 从 Node.js 调用 Java 吗?如何?

使用 Socket.io 将客户端连接到服务器

如何在客户端使用 node.js 模块系统

如何brew安装特定版本的Node?

node.js(ES6 / Babel)中 import X 和 import * as X 的区别?

gyp WARN EACCES 用户root没有访问开发目录的权限

nodejs - 如何读取和输出 jpg 图像?