Utility to redirect/refresh with an updated query string.
npm install @rill/refresh-with
const app = require('rill')()
const refreshWith = require('@rill/refresh-with')
// Setup the middleware.
app.use(refreshWith())
// Use the 'res.refreshWith' utility.
// Example `href` is `http://test.com/my-view?modal=hello&test=1`
app.get('/my-view', ({ req, res }, next)=> {
// Example usecase of removing a modal from the querystring.
if (req.query.modal) {
res.refreshWith({ modal: '', success: true })
// Removes `modal` and adds `success=true`
res.get('Location') // -> `http://test.com/my-view?success=true&test=1`
}
})
// Example `referrer` is `http://test.com/my-view?modal=hello&test=1`
app.get('/from-somewhere-else', ({ req, res }, next)=> {
// Example usecase of redirecting to the previous page while unsetting a modal.
res.refreshWith({ modal: '', success: true }, { url: 'back', hash: '#top' })
// Removes `modal` and adds `success=true to the referrer`
res.get('Location') // -> `http://test.com/my-view?success=true&test=1`
})
###ctx.res.refreshWith(setters:Object, options:Object)
Similar to calling ctx.res.redirect
but will update the current querystring with setters
and default the url
to the current href
.
Specify the options.url
option as back
to automatically redirect to the referrer
page.
You can also specify options.alt
for the fallback when using options.url = 'back'
.
- Use
npm test
to run tests.
Please feel free to create a PR!