us-sdp-req-end
v0.0.4
Published
Final de linea de una aplicacion basada en Express.
Downloads
3
Readme
US-SDP-REQ-END
Servicio de fin de linea de "app" para aplicaciones creadas en base a express 4+.
Descripción
Basicamente envia al navegador las vistas que indican errores o solicitudes no encontradas en la aplicación de NodeJS. Para ayudar en el desarrollo, evalua la variable de entorno que determina el modo de funcionamiento de la aplicación y muestra el informe del stack error cuando esta en producción.
Características
- Emite error 404 en modo de producción
- Emite error 404 e imprime el -error stack- en modo de desarrollo (development)
- Emite error 500 cuando se ha producido un error
- Vista independiente para cada error:
- 404 para producción
- 404 para el entorno de desarrollo
- 500 para producción y desarrollo
- Renderiza sus propias vistas, las puedes modificar en bin/views
- Utiliza fuentes de Google Fonts para mejorar la apariencia de las vistas
- Indica de sutílmente la variable de entorno env al final de las vistas
Instalación
- Este módulo requiere NodeJS v4.x para funcionar.
- No ha sido probado en NodeJS 6.x.
- Adicionalmente usa internamente EJS, para renderizar las vistas en cualquier proyecto sin importar cual motor de renderizado use este. Contiene sus propias vistas alojadas en bin/views.
$ npm install us-sdp-req-end
Para instalar una versión específica usa:
$ npm install [email protected]
Forma de uso
var express = require('express');
var reqEnd = require('us-sdp-req-end');
// Tu código de servidor
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();
app.use('/', routes);
app.use('/users', users);
// --
reqEnd(app);
Para ejecutar tu app con variable de entorno
En package.json coloca esta información: Nota: reemplaza "./bin/www" por la ruta de inicio de tu app
{
...
"scripts": {
"start": "NODE_ENV=production node ./bin/www"
}
...
}
entonces ejecutas en la terminal:
npm start
Más formas de enviar variables de entorno a tu aplicación de NodeJS
Ejemplo de uso
// ---------------------------------------------------------------------------------------------------------------------
// MODULOS REQUERIDOS PARA EL PROYECTO
// ---------------------------------------------------------------------------------------------------------------------
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var reqEnd = require('us-sdp-req-end');
// ---------------------------------------------------------------------------------------------------------------------
// VARIABLES
// ---------------------------------------------------------------------------------------------------------------------
var routes = require('./routes/index');
var users = require('./routes/users');
// ---------------------------------------------------------------------------------------------------------------------
// APP
// ---------------------------------------------------------------------------------------------------------------------
var app = express();
app.set('json spaces', 2);
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
// ---------------------------------------------------------------------------------------------------------------------
// CORS
// ---------------------------------------------------------------------------------------------------------------------
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST', 'DELETE', 'UPDATE', 'OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type, Authorization', 'XMLHttpRequest');
next();
});
// ---------------------------------------------------------------------------------------------------------------------
// ROUTER
// ---------------------------------------------------------------------------------------------------------------------
app.use('/', routes);
app.use('/users', users);
// ---------------------------------------------------------------------------------------------------------------------
// MANEJO DE ERRORES DE FIN DE LINEA
// Manejo de errores de final de linea en la cadena de requerimientos
// Cuando no se obtiene una respuesta de ningun servicio para la petición
// del request, el siguiente modulo procesa la respuesta.
// ---------------------------------------------------------------------------------------------------------------------
reqEnd(app);
Todos
- Personalización programada de mensajes para cada vista
- Especificar la ruta para el renderizado de vistas de usuario
Licencia
Licenciado bajo la Licencia Apache, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)