Today, we'll be covering getting started with Deno! Deno is a JavaScript
server language like node.js
but built in Typescript
.
It's designed to improve the shortcomings of node.js
.
It's been quite hyped over the last couple months, and even when writing this article, I have zero experience with it, so this guide is also my guide.
What is TypeSript?
As mentioned, TypeScript
is a superset of JavaScript
. TypeScript is a strongly typed language, meaning types must be defined when declaring variables. This makes it more strict and easier to spot errors and faults.
Setting up Deno
To get started, we need to install Deno locally first.
If you are on Linux/Mac run the following command:
curl -fsSL https://deno.land/x/install/install.sh | sh
If you're on Windows:
iwr https://deno.land/x/install/install.ps1 -useb | iex
Note: You can find your install package on the Deno website
You can verify the installation by running:
deno --help
Our First Deno Application
So let's start by creating our first Deno application.
Create a new folder and our starting file server.ts
mkdir deno && cd deno
Let's start adding lines to our server.ts
file
import {serve} from 'https://deno.land/std@0.63.0/http/server.ts';
This tells our server to import the serve
module from a URL; in node.js
we would have to use npm install
first!
Now we are going to create a new Deno server:
const server = serve({port: 1337});
We are starting our server on port 1337.
Sending a response to the browser
for await (const req of server) {
req.respond({body: 'Hello Deno!!'});
}
So this is a bit different then what we see in node.js
.
We loop through each incoming request, and for each request, we are returning a body!
Running Our Deno Server
To run our deno server, we can run the following command in our terminal.
deno run --allow-net server.ts
Now we can open our browser and go to localhost:1337
. We should now see our body!
Awesome, getting started was really quick and easy!
You can download my starter project on GitHub
Thank you for reading, and let's connect!
Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on Facebook or Twitter
Top comments (5)
hello,
i fail to see what deno is solving
and i wonder how is dealt/checked integrity of imports
and what happens if we start deplaying deno and suddenly one single tiny online dependency is not available for undefined time frame
I think deno is trying to be a "better node". How?
Sound good, right? But do we need it? I don't know.
The details of that are here: Integrity checking & lock files
Even npm can fail, right? What do you do then?
In the case of deno you can choose to get your dependencies from a cdn, and just trust that it'll be there. The other option is to take the deno cache directory and put that on source control, they explain how here.
Very well explained, are you using Deno for any production stuff?
Not yet. I would rather wait until deno can do something node can't, or at least until deno has 100% compatibility with node's ecosystem.
I got interested since it was promised to be a better version of node.js that's how far I got, and just started playing around with it.
I'm not too sure about the integrity of the imports.
I do believe once we deploy, it's all compiled, so no worry on the imports there.