New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

express-route-refresh

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-route-refresh

Refesh express router (routes) without restarting the process

latest
Source
npmnpm
Version
0.0.2
Version published
Maintainers
1
Created
Source

express-route-refresh Build Status

NPM

Introduction

express-route-refresh reload routes in your express app without restarting the process, just following a simple pattern.

You can restart a URL composed by a Router, that is exported by a unique file. Let's see an example.

api.js

'use strict';

var express = require('express');
var router = express.Router();

router.get('/', function API(req, res, next) {
  setTimeout(function() {
    res.send('ok\n');
  }, 10000);
});


module.exports = router;

routes.js

var refreshable = require("express-route-refresh");

module.exports = function(app) {

  var refresh_middleware = [
    refreshable(app, '/api', './api.js')
  ];
  // now /api is registered

  // you can refresh just one
  app.use('/refresh', function(req, res, next) {
    // notice: require is synchronous... so this will be!!
    refresh_middleware.forEach(function(v) {
      v(); // do not send params if you are going to refresh more than one
    });
    res.send('ok');
  });
}

app.js


var express = require('express');

// Setup server
var app = express();

var server = require('http').createServer(app);

require("routes.js")(app);

// Start server
server.listen(8080, '0.0.0.0', function () {
  console.log('Express server listening on %d, in %s mode', 8080, app.get('env'));
});

Limitations

One file (export router) - One route.

If your jsfile do anything fancy that is not related to export a Router. It could not work...

Keep it simple, just export a router and everything will be fine :)

TODO & PR welcome

  • test if support multiple routes usage. atm we only test at app (root) level.
  • previous versions?
  • how to test multiple express versions? maybe duplicating in the package.json...

Notice about express versions

It's tested with express 4.0.

express do not expose any API to allow middlewares manipulation.

I did it modifying internal variables in express application in particular: _router.stack, I will be happy to support any new version in the way or past if needed/requested.

Supported versions:

var refresh_latest = require("express-route-refresh"), // actually are the same
  refresh_v400 = require("express-route-refresh").v400;

License

MIT

Keywords

express

FAQs

Package last updated on 27 Feb 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts