In Part 1 we set up our basic environment and implemented our first very basic route. In this part we are going to establish a connection to our MongoDB server, fetch a user from the database and set up a protected route. Again, this is more of a guideline which you can use to select the exact topics you need to learn in order to write a server in rust, not a fully-fledged tutorial.

Establish a MongoDB connection

Let’s start again by checking out the Express.js version.

First we import mongoose, get the connection string from our configuration, call connect and attach two…

It’s important to stay up to date with new developments in the world of thousands of programming languages. Especially as Full Stack developers, we can lose touch to the underlying processes and internal workings when we continue to only develop in very high-level languages such as Typescript.

I kept an eye on rust for a bit over two years now and while rust is still very niche, the community is very passionate about it.

For five years running, Rust has taken the top spot as the most loved programming language. TypeScript is second surpassing Python compared to last year. …

This assumes a Debian based distribution with systemd, a MySQL server, a NodeJS backend and a frontend written in any library you prefer (Vue, react, etc).

For a tl;dr see here.

Update the package list

sudo apt update

Install the mysql-server

Setup GIT deployment repository

We first need to setup a new repository on our server. This will serve as our target for certain versions we want to push and publish. Instead of copying versions manually we can instead use the power of git and push changes over ssh.

Creating a deployment hook

This will be executed on every successful push. …

This is a small write up on how the AES ECB mode can be broken without much computing power if you have the ability to prepend your own message to the plaintext. I strongly recommend checking out if you want to try it out for yourself. See the ECB Oracle Challenge.

ECB is the easiest Block Cipher Mode there is. The plaintext is divided into n block sized chunks and each chunk is encrypted separately. If the plaintext is not divisible by the block size, bytes will be appended in order to fit into the block size. The biggest…

What I experienced refactoring a JavaScript project, developed by new programmers.

Last year I was presented with a decently sized vue project, build by mostly new developers, which I was tasked to refactor.

First I had to get to know what the application actually did. I spun up a new instance and was greeted by a deep red developer console.

Oh. Yeah. We don’t know quite yet where those errors come from, but it works!

And it did work, well kind of, which was pretty amazing to be honest. …

Daniel Voigt

Software developer, language enthusiast and Jazz musician.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store