npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

us-sdp-req-end

v0.0.4

Published

Final de linea de una aplicacion basada en Express.

Downloads

4

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)