No estoy muy seguro de si me estoy acercando a esto correctamente, pero mi problema es que generalmente recibo datos json en mi punto final API, luego estoy creando una instancia de modelo a partir de los datos json req.body ... y estoy usando Pila MEDIA..
El problema que tengo ahora es que uno de los campos de mi modelo es del tipo de datos mongoose-long con 18 posiciones. Sin embargo, el bodyParser analiza el número y redondea las últimas 3 posiciones del número. Lo uso para el campo _id, por lo que recibo errores de clave duplicada.
Construyo y envío los datos manualmente a través de Python para realizar pruebas, y uso _ast_lib_eval(document) para eliminar todas las comillas de cadenas de mi documento json construido. Por lo tanto, de alguna manera json bodyParser obtiene el cuerpo y toma el número pero corta (o redondea) los campos numéricos porque supongo que no admite números tan largos de forma nativa... Podría usar otro bodyParser para ciertas rutas tal vez... pero no estoy seguro de cómo configurar eso.
¿Cuál es el mejor enfoque ahora? ¿Tengo que usar otro analizador y, por lo tanto, enviar mis datos como texto sin formato o sin procesar para todos los puntos finales de API? Eso significaría que tengo que rehacer todo para que se ajuste al analizador, ¿verdad? El formato habitual es json....
o ¿puedo obtener de alguna manera los datos "sin procesar" del req.body antes de que se analicen desde el bodyparser? Esa sería la mejor manera de obtener manualmente el número correcto... pero no sé si hay un método para hacerlo...
Según las especificaciones, puede realizar un análisis de cuerpo personalizado específico en todos los puntos finales
app.post('/some/special/route', bodyParser.json({verify:function(req,res,buf){req.rawBody=buf}})) app.use(bodyParser.json())