windows10 和 windows 服务器 2012 nodejs 在请求数据中捕获意外标记
windows10 and windows server 2012 nodejs catch Unexpected token in request data
代码在“macOS”中运行良好,没有任何问题,但“windows 10”和“windows server 2012 R2”收到错误消息。
我确实尝试将 request
编码为 utf8,但没有帮助。
请指教如何处理这个问题。谢谢。
代码截图
const express = require("express");
const mongoose = require("mongoose");
const utf8 = require('utf8');
const iconv = require('iconv-lite');
const jju = require('jju');
...
app.use(function (req, res, next) {
const chunks = [];
req.on('data', function (chunk) {
chunks.push(chunk);
});
req.on('end', function () {
try {
const body = Buffer.concat(chunks);
if (!_.isEmpty(body)) {
req.body = jju.parse(body);
}
next();
} catch (err) {
console.log('incoming data:', err);
}
});
});
错误信息
incoming data: SyntaxError: Unexpected token '�' at 1:7569842
UUUlAC0lLRQAlFFLQAmKKM0ZoADSUtJQAtJS0nfFAC4ooooAbS0UtACUUUUAHPWg8��n
^
at Object.parseJSON (C:\Projects\xxx\xxx\node_modules\jju\lib\parse.js:740:13)
at IncomingMessage.<anonymous> (C:\Projects\xxx\xxx\index.js:70:36)
at IncomingMessage.emit (events.js:412:35)
at endReadableNT (internal/streams/readable.js:1317:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21) {
column: 7569842,
row: 1
}
更新 1
此错误仅在 request
较大时发生。
如果有人遇到同样的问题,这里是我的解决方案。
我已经使用 Linux 服务器解决了这个问题。
代码在“macOS”中运行良好,没有任何问题,但“windows 10”和“windows server 2012 R2”收到错误消息。
我确实尝试将 request
编码为 utf8,但没有帮助。
请指教如何处理这个问题。谢谢。
代码截图
const express = require("express");
const mongoose = require("mongoose");
const utf8 = require('utf8');
const iconv = require('iconv-lite');
const jju = require('jju');
...
app.use(function (req, res, next) {
const chunks = [];
req.on('data', function (chunk) {
chunks.push(chunk);
});
req.on('end', function () {
try {
const body = Buffer.concat(chunks);
if (!_.isEmpty(body)) {
req.body = jju.parse(body);
}
next();
} catch (err) {
console.log('incoming data:', err);
}
});
});
错误信息
incoming data: SyntaxError: Unexpected token '�' at 1:7569842
UUUlAC0lLRQAlFFLQAmKKM0ZoADSUtJQAtJS0nfFAC4ooooAbS0UtACUUUUAHPWg8��n
^
at Object.parseJSON (C:\Projects\xxx\xxx\node_modules\jju\lib\parse.js:740:13)
at IncomingMessage.<anonymous> (C:\Projects\xxx\xxx\index.js:70:36)
at IncomingMessage.emit (events.js:412:35)
at endReadableNT (internal/streams/readable.js:1317:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21) {
column: 7569842,
row: 1
}
更新 1
此错误仅在 request
较大时发生。
如果有人遇到同样的问题,这里是我的解决方案。
我已经使用 Linux 服务器解决了这个问题。