Using Hapi.js, Mongoose, And MongoDB To Build A REST API

February 18, 2019 Nic Raboy

To continue on my trend of MongoDB with Node.js material, I thought it would be a good idea to use one of my favorite Node.js frameworks. Previously I had written about using Express.js with Mongoose, but this time I wanted to evaluate the same tasks using Hapi.js.

In this tutorial we're going to develop a simple RESTful API using Hapi.js, Joi and Mongoose as the backend framework, and MongoDB as the NoSQL database. Rather than just using Hapi.js as a drop in framework replacement, I wanted to improve upon what we had previously seen, by simplifying functions and validating client provided data.

Read More

Don't Be Afraid Of Grep

February 13, 2019 Adrienne Braganza Tacke

One of the most powerful commands that you could learn, grep is essentially a robust search tool. It gets its name from the acronym it stands for which is global regular expression print. This is just a fancy way of saying “to search for specific strings or patterns (using regular expressions) within a specific file or directory and print the matching results”.

Read More

TPDP Episode #24: Mobile Application Security

February 12, 2019 Nic Raboy

I'm pleased to announce that the latest episode of The Polyglot Developer Podcast titled, Mobile Application Security, has been published to iTunes, Pocket Casts, and every other major podcasting network that consumes the feed!

In this episode, which is the 24th episode of the show, I'm joined by first time guest, Rob Lauer, and returning guest TJ VanToll. Both of these guests work for Progress, which is the company behind NativeScript, and you'll remember that episode 5 was strictly around getting to know what NativeScript has to offer. The focus of this episode isn't around NativeScript, but around the security of your mobile applications. Just like with web applications, security is important with mobile, even if it isn't talked about as much.

In this episode you'll learn about protecting your application source code from reverse engineering, protecting your users data at rest, and securely transferring your data between remote web services.

Read More

Hash Password Data In MongoDB With Mongoose And Bcrypt

February 11, 2019 Nic Raboy

When creating a web application that handles user information it is a good idea to protect anything considered sensitive rather than storing it as plaintext within a database. The goal is to make it as difficult as possible for a malicious person to obtain access to this sensitive information. Rather than encrypting sensitive information with the knowledge that it can one day become decrypted, it is better to hash this sensitive data instead because hashing is a one-way process.

In this tutorial we're going to take a look at hashing password data with bcryptjs before storing it in a MongoDB NoSQL database with Mongoose and Node.js.

Read More

Use A YubiKey For PGP Signing, Encryption, And Authentication

February 6, 2019 Nic Raboy

As you know, based on a few of the tutorials that I've published recently, I have a YubiKey that I've been learning how to take full advantage of. In previous tutorials I demonstrated how to implement U2F in your web application, but most YubiKey devices do so much more than just U2F authentication. For example, the YubiKey NEO and YubiKey 5 have support for U2F, FIDO2, OpenPGP, OTP, and a bunch of other crazy technologies.

In this tutorial, we're going to explore using the YubiKey as a smart card for storing our PGP signing, encryption, and authentication subkeys.

Read More

Building A REST API With MongoDB, Mongoose, And Node.js

February 4, 2019 Nic Raboy

About a week or so ago I had written a tutorial titled, Getting Started with MongoDB as a Docker Container Deployment, which focused on the deployment of MongoDB. In that tutorial we saw how to interact with the MongoDB instance using the shell client, but what if we wanted to actually develop a web application with MongoDB as our NoSQL database?

In this tutorial we're going to see how to develop a REST API with create, retrieve, update, and delete (CRUD) endpoints using Node.js and the very popular Mongoose object document modeler (ODM) to interact with MongoDB.

Read More

Getting Started With MongoDB As A Docker Container Deployment

January 28, 2019 Nic Raboy

MongoDB is one of the most popular NoSQL databases on the market right now and is used heavily with Node.js development in particular. So what if you wanted to give MongoDB a spin and see what it's all about?

There are plenty of deployment options when it comes to using MongoDB. For example, I had recently written a tutorial titled, Developing a RESTful API with Node.js and MongoDB Atlas which focused on the MongoDB cloud solution called Atlas. However, you can also install MongoDB on premise using multiple options.

In this tutorial we're going to focus on using Docker to deploy MongoDB as a container and interact with it with the shell client.

Read More