Learning Outcomes
The learning outcomes for this week are a slightly more broad than the previous weeks. You'll be learning the basics of Hapi, but you'll also be bringing lots of technologies that you've learnt together with a goal to structure your project in a more modular fashion.
Core Learning Outcomes
- Set up a Hapi Server (get it listening on a
port
of your choice) - Set up some routes using
server.route([....])
- Get data out of the
request
params and payload - Set up a route with a dynamic url (i.e. one route that can handle a number of different requests)
- Register Plugins using the
server.register([....], cb)
method - Serve static files (like css or js files) using the
Inert
plugin - Serve html templates using
Handlebars
and Hapi'sVision
plugin - Validate a user's input using the
Joi
plugin - Set up a basic user login with the
Hapi Auth Basic
plugin - Test all of these using
tape
(Hapi hasshot
built in so it's super nice to test!) - Set up
SASS
to modularise your css using@import
If you can do all of these, congratulations!!
Bonus Learning Outcomes
- Understand and use Handlebars partials, layouts and helpers
- Organise a 'feature' of your app into a Hapi plugin
- Understand and use SASS variables, mixins and nesting
- Use SASS control directives (like
@for
,@if
and@each
) to set up a group of css selectors