0.0.1 • Published 10 years ago
expressjs-git v0.0.1
expressjs-git
Serve and receive git repositories with express.
Installation
npm i expressjs-git
Work in progress
- Callbacks
- Authentification
Simple usage
var express = require('express');
var expressGit = require('express-git');
var app = express();
var reposMiddle = expressGit({
folder: path.join(__dirname, 'repos')
});
app.use('/repos/:repository', reposMiddle);
app.listen(8080, function()
{
console.log('App and running on port 8080.');
});The middleware created here looks for repositories in the folder, provided via the folder option. It's done by path.joining the folder with the parameter repository within the url (meaning, you must provide it). This is not working recursive. However, you can replace the "resolve repository path"-logic with your own. See the next section.
Advanced usage
npm i glob
var path = require('path');
var express = require('express');
var expressGit = require('express-git');
var glob = require('glob');
var app = express();
var reposMiddle = expressGit({
folder: path.join(__dirname, 'repos'),
resolve: function(request, done)
{
if(request.params.repo == null)
{
done(new Error('"Repo" not defined.'), null);
return;
}
glob(path.join(this.folder, '**', request.params.repo), function(error, files)
{
if(error != null || files.length === 0)
{
done(error == null ? new Error(request.params.repo + ' not found.') : error);
return;
}
done(null, files[0]);
});
}
});
app.use('/repos/:repo', reposMiddle);
app.listen(8080, function()
{
console.log('App and running on port 8080.');
});The middleware created here uses glob to search recursively within folder (yes, this is the complete options-object). The repository is identified by the repo url parameter.
0.0.1
10 years ago