node-restify icon indicating copy to clipboard operation
node-restify copied to clipboard

Support serve-static from express

Open retrohacker opened this issue 7 years ago • 1 comments

  • [x] Used appropriate template for the issue type
  • [x] Searched both open and closed issues for duplicates of this issue
  • [x] Title adequately and concisely reflects the feature or the bug

Feature Request

Use Case

It would be super cool if we could just use the serve-static plugin from the express ecosystem instead of continuing to invest in maintaining a parallel (and broken) internal serveStatic plugin.

Why do you want this?

Example API

var restify = require('restify');
var serveStatic = require('serve-static');

var app = restify.createServer();
var serve = serveStatic('./static');

app.get('.*', function(req, res, next) {
    res.addListener('finish', next);
    serve(req, res, function (err) {
        res.removeListener('finish', next);
        next(err);
     });
});

app.listen(8080);

It also looks like we need to support the req.originalUrl pattern similar to express: https://github.com/expressjs/express/blob/c0136d8b48dd3526c58b2ad8666fb4b12b55116c/lib/router/index.js#L172

This should include code snippets and documentation for the proposed feature

Are you willing and able to implement this?

"Yes" or, if "no", what can current contributors do to help you create a PR?

Yup!

retrohacker avatar Feb 27 '18 21:02 retrohacker

This looks very promising!

Would this allow us to have say a static folder with some files served that way and the rest of the routes served by Restify itself?

My use case is that a pretty common scenario is to have a bunch of static files i'd like to serve, robots.txt, analytics auth and so on and the easiest way would be to have a static folder with that, and all the other routes just configured as per usual.

kokarn avatar Mar 04 '18 12:03 kokarn