使用iconv的Node.js bodyParser.JSON

时间:2019-01-12 11:05:11

标签: node.js

我正在设置一个node.js服务器,有时在我对服务器的JSON请求中,JSON对象内部有特殊字符,例如țșîășț,它导致以下错误:bodyParser.Json()出现SyntaxError: Unexpected token in JSON at position x。我发现iconv是一个可以用来允许特殊字符但不知道如何正确使用和摆脱该错误的软件包。有人可以给我任何提示以使自己走上正确的轨道。

const express = require('express')
const bodyparser = require('body-parser')
const mongoose = require('mongoose')
const bcrypt = require('bcrypt');
const iconv = require('iconv')


//init app
const app = express()
app.use('*', function (req, res, next) {
    res.header('Content-Type', 'application/json; charset=utf-8');
    next();
  });
app.use(bodyparser.json())
var ic = new iconv.Iconv('iso-8859-1', 'utf-8');
app.post('/checkOut', (req, res) => {
    req.body = ic.convert(req.body).toString('utf-8');
    console.log(req.body)
    var username = req.body.username;
    var nume = req.body.nume;
    var idRest = req.body.idRest;
    var adresa = req.body.adresa;
    var phone = req.body.phone;
    var foodName = req.body.food;
    var pretTotal = req.body.pretTotal;

    CheckOut.createComandEntry({nume:nume,username:username,idRest:idRest,adresa:adresa,phone:phone,foodName:foodName,pretTotal:pretTotal},(err,result) => {
        if(err){
            throw err
        }
        res.json({"status":1})
    })
})

0 个答案:

没有答案