Emoji вызывает сбой Express-сервера
Я пытаюсь создать POST с эмодзи для моей конечной точки Express:
curl --data '{"x": 10, "y":10, "z":10, "message": "", "userToken": "Marine"}' --header "Content-Type:application/json" localhost:3000/api/messages
По какой-то причине это приводит к сбою моего сервера:
SyntaxError: Unexpected token
at Object.parse (native)
at parse (/Users/user/Documents/uncovery/node_modules/body-parser/lib/types/json.js:84:17)
at /Users/user/Documents/uncovery/node_modules/body-parser/lib/read.js:102:18
at IncomingMessage.onEnd (/Users/user/Documents/uncovery/node_modules/body-parser/node_modules/raw-body/index.js:149:7)
at IncomingMessage.g (events.js:199:16)
at IncomingMessage.emit (events.js:104:17)
at _stream_readable.js:908:16
at process._tickCallback (node.js:355:11)
Я пошел к своему маршрутизатору и поместил console.log в мой/messages
конечная точка, чтобы увидеть, что получено, но когда происходит сбой Express в результате отправки смайликаconsole.log
никогда не активируется
router.js
var models = require('../db/models.js');
var util = require('../core/utilities.js');
var sockets = require('../routes/sockets.js');
module.exports = function(router) {
//input: {x: float, y: float, z: float, message: string, userToken: string}
router.post('/messages', function(req, res) {
console.log("Emoji: ", req.body);
models.createMessage(req.body).then(
util.resolvePOST.bind(this, req, res),
util.rejectPOST.bind(this, req, res)
);
});
}
Я подозреваю, что это как-то связано с промежуточным программным обеспечением и не связано с маршрутами, но когда я Googleсмайлики узла смайликов Я не могу найти ничего актуального. Почему это происходит?
index.js
var http = require('http');
var morgan = require('morgan');
var express = require('express');
var socketIO = require('socket.io');
var bodyParser = require('body-parser');
var util = require('./server/core/utilities.js');
var router = require('./server/routes/router.js');
var sockets = require('./server/routes/sockets.js');
var app = express();
var server = http.Server(app);
app.use(morgan('combined', util.getLogStream()));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json({ limit: '50mb' }));
app.use('/api', router);
app.use(express.static(__dirname + '/server/landing'));
var io = socketIO(server);
sockets.initialize(io);
server.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Uncovery listening at http://%s:%s', host, port);
});