Routing ​
Defining routes ​
In The Boring JavaScript Stack, all of your application's routes are defined server-side. This means that you don't need Vue Router or React Router.
Instead, you can simply define Sails routes and return an Inertia responses for SPA or return a server-side view for server-side rendering from those routes.
For example let's say we want to create a /users
route, we can define the route in config/routes.js
:
js
module.exports.routes = {
'GET /users': 'user/view-users'
}
The above route definition means that when a user requests the /users
page of your app, the view-users
action of the user
controller will handle that request. Let's implement user/view-users
.
TIP
Run npx sails generate action user/view-users
to scaffold the action.
js
module.exports = {
inputs: {},
exits: {
success: {
responseType: 'inertia'
}
},
fn: async function (inputs) {
const users = await User.find()
return { page: 'users/index', props: { users } }
}
}
INFO
Note the responseType: 'inertia'
in the success exit.