I want to use the express static server configuration for implementing an static server:
app.configure(function() {
app.use(express.static(__dirname + '/public'));
});
But I want to map the URL http://myhost/url1
to directory C:\dirA\dirB
and http://myhost/url2
to directory C:\dirC
How can it be implemented using express.static?
It is not necessary to use Express. Express is just a library that uses Node-Functions to make it easier for you to implement a Webserver.
Express is a node js web application framework that provides broad features for building web and mobile applications. It is used to build a single page, multipage, and hybrid web application. It's a layer built on the top of the Node js that helps manage servers and routes.
mkdir() method i Node. js is used to create a directory asynchronously. Parameters: This method accept three parameters as mentioned above and described below: path: This parameter holds the path of the directory has to be created.
This should work for you:
var serveStatic = require( "serve-static" );
app.use('/url1', serveStatic('c:\\dirA\\dirB'));
app.use('/url2', serveStatic('C:\\dirC'));
Take a look at the documentation for app.use().
Depending on how many directories you're planning to map this way, you could simply make symlinks for those directories in your public
folder.
In Windows:
mklink /D c:\dirA\dirB public\url1
In Linux or OSX:
ln -s /dirA/dirB public/url1
Then your static assets server should serve from those directories transparently (I've never tested on Windows but I don't see why it wouldn't work).
Alternatively, if you wanted to include some kind of dynamic routing, you could write your own middleware to replace express.static
which is actually connect.static
under the hood. Take a look at static.js in the connect source and see how it's implemented, it should be fairly straightforward to write your own variation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With