respuesta para la pregunta 1:
Para limitar el tamaño de la petición HTTP y envío tamaño del archivo que necesita para establecer el límite body-parser
.
app.use(bodyParser.urlencoded({limit: '50mb',extended: true}));
app.use(bodyParser.json({limit: '50mb'}));
bodyParser.urlencoded
Los archivos de la parte delantera se presenta como cuerpos urlencoded.
Devuelve un middleware que solo analiza cuerpos urlencoded. Este analizador acepta solo la codificación UTF-8 del cuerpo y admite el inflado automático de gzip y desinfla las codificaciones.
Un objeto de cuerpo nuevo que contiene los datos analizados se rellena en el objeto de solicitud después del middleware (es decir, req.body). Este objeto contendrá pares clave-valor, donde el valor puede ser una cadena o matriz (cuando se extiende es falsa), o cualquier tipo (cuando se extiende es verdadera).
bodyParser.json
devoluciones middleware que sólo analiza JSON. Este analizador acepta cualquier codificación Unicode del cuerpo y admite el inflado automático de gzip y desinfla las codificaciones.
Un objeto de cuerpo nuevo que contiene los datos analizados se rellena en el objeto de solicitud después del middleware (es decir, req.body).
Nota: Por defecto el límite de entrada para el analizador cuerpo es 100kb
respuesta a la pregunta 2:
Para cambiar el directorio de carga por defecto, podemos usar el siguiente.
app.set('uploadDir', './files'); // Sets the upload Directory to files folder in your project.
otra implementación
Mientras incluyendo el bodyParser en la aplicación podemos mencionar el directorio de carga.
app.use(express.bodyParser({uploadDir:'./files', keepExtensions: true}));
Referencia:
Problemas: https://github.com/expressjs/express/issues/1684
Espero que esto ayude!
si limito a 2MB, y envío una solicitud http de 1GB. ¿Se detendrá de inmediato si supera los 2 MB? o devuelve un error pero aún obtiene el resto de los datos de 0.998GB? – murvinlai
La fuente está disponible en https://github.com/senchalabs/connect/blob/master/lib/middleware/limit.js. Si lo estoy leyendo correctamente, lee los datos fragmentados y finaliza la solicitud tan pronto como excede el límite de tamaño. –
express.límite está en desuso en nodejs 6 como middleware – user1709076