Ok, for HTTP request pathname matching you can just use express.  I'm
pretty sure it allows this kind of pattern matching our of the box.  To
implement such matching yourself it easy.

var http = require('http');
var url = require('url');

// Match /some/folder/:id/*
var pattern = new RegExp("^/some/folder/([^/]+)(.*)$");

http.createServer(function (req, res) {
  // pathname removes trailing query strings and gives just the path
  var pathname = url.parse(req.url).pathname;
  var match = pathname.match(pattern);
  if (match) {
    // the request matched
    // :id is in match[1] and anything after it is in match[2];
  }
})

What most frameworks will do is take your string like
"/foo/bar/:param1/:param2" and compile it into a custom regular expression
and then match on that.

On Thu, Apr 19, 2012 at 10:16 AM, Masiar <[email protected]> wrote:

> Imagine a service that sells goods. With the extensions I would like
> to have a programmer able to call init() passing as parameter a path,
> for example '/buy/:itemId',(I'm working on a protocol I won't explain
> in full details), and then my extension extends that path: thus it
> creates paths such as '/buy/:itemId/myStuff' and listen on that path
> for POST, GET, DELETE, PUT. That's it. Hope that's clearer.
>
> P.S. I always worked with express.js, I don't know if there is
> something similar to the signature ":itemId" for example, to gather
> all the paths to that listener with some itemId. I used that signature
> to let you understand what I mean.
>
> On Apr 19, 2:25 pm, Tim Caswell <[email protected]> wrote:
> > Could you be more specific?  What kind of paths are these.  Are you
> talking
> > a virtual filesystem, or http request urls or something else?
> >
> >
> >
> >
> >
> >
> >
> > On Thu, Apr 19, 2012 at 3:06 AM, Masiar <[email protected]> wrote:
> > > Hello everybody. Sorry for the meaningless title, I would like to
> > > create a Node.js extension that extends the paths the programmer
> > > writes adding some more to integrate a protocol I'm researching right
> > > now.
> > > The idea is the following: the programmer writes his/her server with
> > > his paths and stuff. When initialized, my extensions should create
> > > some a couple of listeners on some paths, for example:
> >
> > > var myExtension = require('./myExtension');
> > > //...
> > > myExtension.init(...);
> >
> > > and myExtension will create for example a listener to "/myextension/a"
> > > which will do something (decided by my extension).
> > > I wanted to know if this is somehow possible to do and if it is, how
> > > would you do that.
> > > Thanks,
> >
> > > Masiar
> >
> > > --
> > > Job Board:http://jobs.nodejs.org/
> > > Posting guidelines:
> > >https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> > > You received this message because you are subscribed to the Google
> > > Groups "nodejs" group.
> > > To post to this group, send email to [email protected]
> > > To unsubscribe from this group, send email to
> > > [email protected]
> > > For more options, visit this group at
> > >http://groups.google.com/group/nodejs?hl=en?hl=en
>
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to