@@ -292,31 +292,62 @@ You can also set options in a `json-server.json` configuration file.
292292
293293### Module  
294294
295- If you need to add authentication, validation, you can use the project as a module in combination with other Express middlewares.
295+ If you need to add authentication, validation, or  __ any behavior __ ,  you can use the project as a module in combination with other Express middlewares.
296296
297- ``` javascript 
297+ __ Simple example__ 
298+ 
299+ ``` js 
298300var  jsonServer =  require (' json-server' 
301+ var  server =  jsonServer .create ()
302+ var  router =  jsonServer .router (' db.json' 
303+ var  middlewares =  jsonServer .defaults ()
304+ 
305+ server .use (middlewares)
306+ server .use (router)
307+ server .listen (3000 , function  () {
308+   console .log (' JSON Server is running' 
309+ })
310+ ``` 
311+ 
312+ For an in-memory database, you can pass an object to ` jsonServer.router() ` .
313+ Please note also that ` jsonServer.router() `  can be used in existing Express projects.
314+ 
315+ __ Custom routes example__ 
299316
300- //  Returns an Express server
317+ Let's say you want a route that echoes query parameters and another one that set a timestamp on every resource created.
318+ 
319+ ``` js 
320+ var  jsonServer =  require (' json-server' 
301321var  server =  jsonServer .create ()
322+ var  router =  jsonServer .router (' db.json' 
323+ var  middlewares =  jsonServer .defaults ()
302324
303325//  Set default middlewares (logger, static, cors and no-cache)
304- server .use (jsonServer . defaults () )
326+ server .use (middlewares )
305327
306- //  Add custom routes
307- //  server.get('/custom', function (req, res) { res.json({ msg: 'hello' }) })
328+ //  Add custom routes before JSON Server router
329+ server .get (' /echo' function  (req , res ) {
330+   res .jsonp (req .query )
331+ })
308332
309- //  Returns an Express router
310- var  router =  jsonServer .router (' db.json' 
311- server .use (router)
333+ server .use (function  (req , res , next ) {
334+   if  (req .method  ===  ' POST' 
335+     req .body .createdAt  =  Date .now ()
336+   }
337+   //  Continue to JSON Server router
338+   next ()
339+ })
312340
313- server .listen (3000 )
341+ //  Use default router
342+ server .use (router)
343+ server .listen (3000 , function  () {
344+   console .log (' JSON Server is running' 
345+ })
314346``` 
315347
316- For an in-memory database, you can pass an object to ` jsonServer.router() ` .
317- Please note also that ` jsonServer.router() `  can be used in existing Express projects.
348+ __ Custom output example__ 
318349
319- To modify responses, use  ` router.render()  ` :
350+ To modify responses, overwrite  ` router.render `  method :
320351
321352``` javascript 
322353//  In this example, returned resources will be wrapped in a body property
@@ -327,6 +358,8 @@ router.render = function (req, res) {
327358}
328359``` 
329360
361+ __ Rewriter example__ 
362+ 
330363To add rewrite rules, use ` jsonServer.rewriter() ` :
331364
332365``` javascript 
@@ -337,7 +370,9 @@ server.use(jsonServer.rewriter({
337370}))
338371``` 
339372
340- Alternatively, you can also mount the router on another path.
373+ __ Mounting JSON Server on another endpoint example__ 
374+ 
375+ Alternatively, you can also mount the router on ` /api ` .
341376
342377``` javascript 
343378server .use (' /api' 
0 commit comments