我正在尝试使用 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,我需要将其配置为可读的正文?请帮忙!