npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

express-hecate

v0.5.0

Published

A convenience module for configuring and reversing routes in Express, like those in Play!

Downloads

5

Readme

Express-Router

Build Status

A convenience module for configuring routes in Express like those in Play!

Why?

My goal was to make configuring route => controller mappings in Express easier when dealing with 'static' routes. The amount of boilerplate required to map more than a handful of URLs to controllers seemed extravagant, so I wanted something that would do the majority of the work for me. Having come from a project built on the Play! framework, I found the way routes are defined in that quite pleasant and useful, so I decided to use that as my model.

Obviously there are going to be scenarios where this approach isn't perfect, but this module does not interfere with regular Express route definition or other routing-related modules (such as resourceful routing) in any way, so feel free to mix and match. If you've got an app that needs resourceful routing for CRUD, this might be a useful complementary module for the boring static pages that are otherwise hard to fit into a dynamic app's URL schema.

How does it work?

Basically you supply a configuration file mapping HTTP verbs, URL paths and controller methods to handle them.

# A sample routes file.
GET     /                       app.index
GET     /faqs                   app.faqs
GET     /demos                  demos.index
GET     /demos/:test            demos.index

The Router parses this file and will create the appropriate mappings against your Express app instance.

That's not all though, as the Router also provides a reverse() method for resolving URLs. This decouples your views from your URL structures - you just make a call to Router.reverse, passing in the controller and method pairing you want resolved, and any parameters you want bound into the generated URL.

In Jade

a(href=Router.reverse('app.faqs')) FAQs
a(href=Router.reverse('demos.index', 'foo') Foo

Resulting HTML

<a href="/faqs">FAQs</a>
<a href="/demos/foo>Foo</a>