https://github.com/1407arjun/file-router-express
React-Router based file-system routing for Express.js.
https://github.com/1407arjun/file-router-express
expressjs file-routing nodejs
Last synced: 6 months ago
JSON representation
React-Router based file-system routing for Express.js.
- Host: GitHub
- URL: https://github.com/1407arjun/file-router-express
- Owner: 1407arjun
- License: mit
- Created: 2022-06-16T10:05:34.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-06-23T12:59:20.000Z (about 4 years ago)
- Last Synced: 2025-10-29T08:13:46.082Z (9 months ago)
- Topics: expressjs, file-routing, nodejs
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/file-router-express
- Size: 76.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# file-router-express
React-Router based file-system routing for Express.js.
```sh
npm i file-router-express
```
## Usage
### Quick start
> Note that the router is extension independent, i.e. `.js` and `.ts` files are treated the same.
```js
import express from "express"
import router from "file-router-express"
const app = express()
app.use("/", router)
app.listen(PORT)
```
### Routing
```sh
Examples:
index.js => /
route.js => /route
route1/route2.js => route1/route2
route1/[route2].js => route1/:route2 // { 'params': { route2 } }
route1/[route2]/[route3].js => route1/:route2/:route3 // { 'params': { route2, route3 } }
route1/[...route2].js => route1/*
```
### Handlers
> Named exports take higher preference over default exports
```js
// Named exports
export const get = (req, res, next) => {...} // Same as router.get('route', get)
export const post = (req, res, next) => {...} // Same as router.post('route', post)
// .
// .
export const del = (req, res, next) => {...} // Use 'del' instead of 'delete', same as router.delete('route', del)
// .
// .
// .
// Default export
export default (req, res, next) => {...} // Same as router.all('route', (req, res, next) => {...})
```
### Middlewares
> Export an array of middleware functions along with the handler instead of the handler alone.
```js
// Named exports
export const get = [middleware1, middleware2, ..., handler] // Same as router.get('route', middleware1, middleware2, ..., handler)
// .
// .
// Default export
export default [middleware1, middleware2, ..., handler] // Same as router.all('route', middleware1, middleware2, ..., handler)
```
## Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Read [CONTRIBUTING.md](CONTRIBUTING.md).
1. Fork the project.
2. Create your Feature Branch. (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes. (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch. (`git push origin feature/AmazingFeature`)
5. Open a Pull Request.