Express を使用して非常に基本的な node.js アプリを作成しようとしています。これは、CORS および HTTPS を介して log4javascript からブラウザー イベント ログを取得し、それらを mongoDB に書き込みます。bodyParser にデータを表示させようとして困っています。あらゆる種類の bodyParser 構成を試しましたが、req.body、req.params、および req.query は常に空です。
これが私のコードです。
var fs = require('fs'),
bodyParser = require('body-parser'),
express = require('express'),
cors = require('cors'),
app = express(),
https = require('https'),
key = fs.readFileSync('*****/key.pem'),
cert = fs.readFileSync('*****/cert.pem'),
https_options = {
key: key,
cert: cert
};
app.use(bodyParser.json());
app.use(cors());
app.post('/', function (req, res) {
console.log(req);
res.send('Hello World!')
});
https.createServer(https_options, app).listen(3443);
log4javascript で JSON レイアウトを使用しています。ここに私のフロントエンドコードがあります:
var logger = log4javascript.getDefaultLogger(),
userAgent = navigator.userAgent.toLowerCase(),
ajaxAppender = new log4javascript.AjaxAppender("https://***/log/");
ajaxAppender.addHeader("Content-Type", "application/json");
jsonLayout = new log4javascript.JsonLayout(false, false);
ajaxAppender.setLayout(jsonLayout);
ajaxAppender.setBatchSize(10);
ajaxAppender.setThreshold(log4javascript.Level.INFO);
logger.addAppender(ajaxAppender);
これは、Chrome に従って log4javascript が送信するもののサンプルです。
. 等 . 等
私は何を間違っていますか?CORS、HTTPS、APACHE mod_proxy、またはその他の何かが、本文を解析する Express の機能を妨げますか? Log4Javascript は、本文を読み取れるように構成する必要がある奇妙な方法で POST を送信しますか? 助けてください!