Express is like a dear friend who does not leave your side during happy or sad times in your life. She may not help you reach enlightenment, but she’s there and she’s super supportive. And, that’s all you need many a time. In this post we create a blog with ExpressJS and friends - oh how exciting.
In this post let us see how we can leverage the power of Express with a sprinkling of Alpine JS to create a quick URL shortener application. But, why? Express is the most popular server-side framework and my “go to” choice for creating anything really quick. Building a front-end for Express is as easy as using handlebars (or anything really) that goes in HTML served by Express.
Here we see how to build a real-world client application for your FeathersJS backend. We will use Vue + Feathers-Vuex and quickly create the frontend app. Building the Client Application Previously you saw how we could use Feathers to quickly build a backend application. The beauty of feathers is not only that it is quick to build, but it is also universal.
We have previously seen a simple todo app using FeathersJS(and NeDB). Feathers makes it really easy to develop an API or a real-time app by providing a super-powered baseline that can be extended quickly to create a useful app. However, the example provided earlier does not provide a set of features anywhere near the real-world experience.
I have used AdonisJS in and out of projects in the last year. Despite it’s smaller community and not-so-regular enhancements, it remains one of my favourite NodeJS frameworks. I recommend AdonisJS for hobby and production projects in full confidence :) I typically use AdonisJS for back-end, which has me start with -
Fastode is an experimental boilerplate / framework based on Fastify. Why another boilerplate? Well, I just wanted to experiment with technologies to create MVP products. Although I have used NestJS, AdonisJS and friends before, those frameworks, while being great, bring their structure and overhead to any project. I wanted to check how difficult or easy it is to just start with a bunch of basic features and leave everything else to the project.
Create a simple to-do API using FeathersJS v4. FeathersJS v4 launched yesterday, and I wanted to see what changed. Of course, I wasn’t going to write a post just about v4 - I have not kept up with the Feathers ecosystem. So, let’s refresh our mind and soul by building a quick API and see how the story develops.
Use MySQL load data function to load data from files within within AdonisJS services. You can perform batch data and file operations efficiently using database utilities. The logic will likely be quicker, lighter on resources, and overall, more suited for batch jobs. Loading data from files is not as sought-after as in the good-ol’ days, but is quite common in enterprise applications.
Use Adonis Scheduler to create batch tasks as well as schedule execution of said tasks. Adonis Scheduler improves your efficiency in writing batch jobs. I am talking about bulk operations that may or may not be suitable for your general purpose service and controllers. Although scheduler’s purpose seems to be, well, scheduling stuff we can reuse Tasks enabled by scheduler to run bulk operations.
NestJS is one of the things I have been playing around a bit in the recent days. Here’s how you can create a websocket application quickly on NestJS. Did I say this is a sample app that serves no real-world value other than poking around the application? Setup project in NestJS First.
Lucid ORM, the official ORM of AdonisJS, is based on knex.js. It is one of the friendlier ORMs that provides the ease of using a readable syntax along with a better performance than some of the feature-heavy ORMs. But, I have been recently torn between using one or the other.
Use database migration utilities in Adonis to its complete potential. Carry out incremental updates - may it be a new table, or changes to existing table using distinct migration files that are version controlled. You have a beautiful Todo application that has a todos table with the following columns: description status end_date Now, let’s say our users ask for a new field called planned_end_date.