【发布时间】:2014-07-19 07:31:18
【问题描述】:
我目前有一个网络服务器将信息作为 JSON 有效负载发布给我,并发送到特定的 URL 端点。
规范声明我需要建立一个可以侦听 POST JSON 请求的 HTTPS 服务器。
我已经创建了如下所示的简单 Node JS 监听器。
我可以确认请求正在到达端点,但在记录时,似乎是乱码数据。有人可以告诉我我的脚本中是否缺少阻止 JSON 解码正确发生的参数吗?
var express = require('express');
var http = require('http');
var https = require('https');
var fs = require('fs');
var logger = require('logger');
var bodyParserNew = require('body-parser');
var application_root = __dirname;
var path = require("path");
var util = require('util');
var options = {
key: fs.readFileSync('./privatekey.pem'),
cert: fs.readFileSync('./server.crt')
};
var app = express();
app.set('port', process.env.PORT);
app.use(express.static(path.join(__dirname, 'site')));
//listener
app.post('/api/test', function (req, res) {
var body = '';
req.on('data', function (data) {
body += data;
});
req.on('end', function () {
console.log('/api/test');
console.log(req.body);
});
res.writeHead(200);
res.end();
});
https.createServer(options,app).listen(8080);
console.log('listening on server 8080');
我看到的有效载荷片段:
��Qk�0��R��ْ,K????��1$e!Y�Ä��2�����b��n)�e�7��:�ü�F7V���-
�?�3���G��� �
9���=#�4��hhv���k��Y�0�%Øq&�mÄ7�i�A�C>��A???h,�����1�5�����2Äe�<�?�����Q��
【问题讨论】:
-
您正在记录
req.body,但您的 var 与您的累积身体只是body。如果将console.log(req.body);更改为console.log(body);会发生什么?
标签: javascript node.js post express https