Deno.js is a new backend language based on the javascript framework. Deno is a simple, modern, and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust. In this tutorial, we’ll learn how to develop a complete CRUD web application using Deno js (Oak as a framework) and using Mysql as database. 

Overview

This project takes an example of an Employee object having four attributes id, name, department, and isActive. We will proceed with adding an employee object in our DB and then performing further operations.

Dependencies

No dependency required. Just install Deno using curl -fsSL https://deno.land/x/install/install.sh | shand set up your DENO_INSTALL path in .bashrc.

Configuration File(server.ts):

server.ts is the main configuration file where all the configuration combines such as route definitions, port, and even logging component.

Interface Layer(Employee.ts):

Define your models here for persisting in the database. Here we have created an Employee model in Employee.ts file

Database Layer(client.ts):

Define your SQL Connection and Create table script here.

Service Layer(employeeService.ts):

Define your business logic here and it also acts as a midpoint between database and controller layer.

Controller Layer (employeeController.ts):

To perform CRUD operations using HTTP methods(GET,POST,PUT,DELETE).

Routes Layer(employee.route.ts):

Define the endpoints in an application and connects to the HTTP methods in a controller.

Running the Application

Run your application by the following command: deno run --allow-env --allow-net server.ts

The application will come up at base URL localhost:8080.

Test your application by appending the endpoints to base URL, PLease find the postman snapshot below:

Create an Employee:

Get Employees List:

Update Employee by Id:

Get Employee By Id:

Delete Employee By Id:

Conclusion

In this tutorial, we learned how to build a CRUD REST-API using Deno js. The complete project can be found at my Github repository: https://github.com/dheerajgupta217/getting-started-with-deno



Source link

Write A Comment