Skip to content
Sign UpLog In
This post is read-only. Explore Repls and connect with other creators on Community.View Community
The info in this post might be out of date, check out our docs instead. View docs
29

Learn Node.js in less than an hour [Tutorial]

RohilPatel
RohilPatel

Node.js Tutorial

What is the syntax like?

Well, everything you already know with JavaScript can be played here, except for the DOM, which if you don't know, includes interacting with a website.

For example we can do some basic console.logs() in Node.js

const x = 6; // Console commands work as normal console.log('x is ' + 6); // Returns 'x is 6' //But with ES5 you can do this: console.log(`x is ${x}`); // Returns 'x is 6'

Ok, but why Node.js

Well, first off, if you want to know why not to use python, I won't say anything, but if you are here because you don't know the difference between the browser js, then continue on.

Node.js makes everything come together. It's a server, which basically controls a bunch of people. Chat rooms send a message to the server, which sends it to everyone else.

Sign in pages send your typed data and check a database to see if it exists.

But it all starts here...

Node.js has something called a module

4 concepts to remember about modules

  • A module must be imported
  • Modules make Node.js work not like browser js
  • Modules can make coding cleaner, resulting in more files and folders
  • You can make a module very easily

Ok, how do you import a module

Well lets use the old fashion way because repl needs to update to node 14 for other things.

Below is how you import a module

const variableToHoldContentOfModule = require('module name as it should be')

Can we import a module as an example?

Yeah ok, lets use the OS module

It can help with determining what module to use.

// Import the module, using require syntax let os = require('os'); //now that we have the os module, we can use the docs to help us find out our platform. Do this by tacking on .platform() to it. console.log(`Your platform is ${os.platform()}`) //now on repl it will be weird to some, as it says Linux, but thats because repl uses a virtual machine built on linux.

How do we make our own module?

Well modules are just js files that work with the server. Try going into module.js at this time, or making it if you are following by yourself.

In there, we added the following code:

// Write some code that you want to share with index.js, let x = 'some random text to export'; function add(x, y) { return x + y; //simle add function } function sub(x, y) { return x - y; //simle subtract function }

As of right now these functions and variables are local to the file, so to make them public, you do the following after everything was declared. It is usually the last thing in a file.

module.exports = { addFunction: add, subFunction: sub, randomText: x }

Come back to index.js and import it

//Node already knows its a js file so you dont need the extension const moduleWeGot = require('./module'); // the "./" refers to the root directory

// Time to see our options:

console.log(moduleWeGot);

We see this:

{ addFunction: [Function: add], subFunction: [Function: sub], randomText: 'some random text to export' }

Our data is there, so now we can just get them with some dot notation.

moduleWeGot.addFunction(5, 4); //returns 9

There is an easier way to get the module though

const { addFunction, subFunction, randomText } = require('./module');

Then use the function as follows

addFunction(5, 66); //Returns 71

I really hope this tutorial helps!!

2 years ago
You are viewing a single comment. View All
1
1
RohilPatel
RohilPatel

Yeah import is much better =/. Did u like the repl?

@realTronsi

2 years ago
1
RohilPatel
RohilPatel

Or I mean the tutorial

@realTronsi

2 years ago
1
realTronsi
realTronsi

@RohilPatel
not much content but yeah decent tutorial

2 years ago
1
RohilPatel
RohilPatel

Yeah lol, upvote if u want. Is there anything you think I should make? I'm far more advanced than this tut

@realTronsi

2 years ago
1
Theboys619
Theboys619

quick steps with functions, variables, loops, and if statements / switch statements. Maybe even JSON objects.

@RohilPatel

2 years ago
1
realTronsi
realTronsi

@Theboys619
lol those are too beginner

2 years ago
1
RohilPatel
RohilPatel

Yea a little beginner, I'll probably teach ejs and data passing

@realTronsi

2 years ago
1
firefish
firefish

Yea a little beginner, I'll probably teach ejs and data passing

@realTronsi

@RohilPatel
I like to think I know a lot about node, but like what is ejs and data passing

2 years ago
1
realTronsi
realTronsi

@firefish
ejs is just a rendering template, and I don't know what he means by data passing lol

2 years ago
1
firefish
firefish

@realTronsi
I had a look at some ejs code, and pug looks more elegant than <%= stuff.

2 years ago
1
realTronsi
realTronsi

@firefish
I never really used pug, but the ejs tag allows you to do expressions and stuff, not sure if pugjs is the same

2 years ago
1
firefish
firefish

@realTronsi
like what kind of expressions, but I'm not exactly an expert at pugjs,
@Coder100
is however

2 years ago
1
Coder100
Coder100

pug js more like EJS

@firefish

2 years ago
1
realTronsi
realTronsi

@Coder100
ejs more like using websockets to send variables over and then replacing the innerHTML with the variable smort

2 years ago
1
realTronsi
realTronsi

@Coder100
Why do you need C tutorial

2 years ago
1
realTronsi
realTronsi

@Coder100
I thought you know C

2 years ago
1
firefish
firefish

@Coder100
C? YES POG POG trying to speak cookeylang POG POG C TUTORIAL POG POG

2 years ago
1
realTronsi
realTronsi

@firefish
how much C do you know

2 years ago
1
firefish
firefish

@realTronsi
moderate amount, here is most of my nkowledge concentrated into one repl: https://repl.it/@firefish/myMem

2 years ago
1
realTronsi
realTronsi

@firefish
wait lol what is this for:

int qRand() { int q[2] = { num_q, 35006 }; return q[3]; }
2 years ago
1
firefish
firefish

@realTronsi
Index-out-of-range is not prohibited.

2 years ago
1
realTronsi
realTronsi

@firefish
I know so why is that your function?

2 years ago
1
Coder100
Coder100

that's why im writing it

@realTronsi

2 years ago
1
firefish
firefish

@realTronsi
random number generator

2 years ago
1
firefish
firefish

poogg? what in the world

@Coder100

2 years ago
1
realTronsi
realTronsi

no but your random number generator is returning an invalid index, its going to seg fault no?

@firefish

2 years ago
1
firefish
firefish

@realTronsi
Aha, you see. It doesn't segfault because the index is only two places away from the end of the array, so there is stuff in accessible memory there. A SegFault occurs when you attempt to access memory that is inaccessible to your process, but the memory I am accessing is so close to the end of the array that it's probably reading the string passed to a printf call or something.

2 years ago
1
realTronsi
realTronsi

@firefish
oh so it isn't random then though?

also thought this seg faulted but apparently this doesnt:

#include <stdio.h> int main(void) { int foo[2] = {1, 2}; printf("%d", foo[3]); }
2 years ago
1
realTronsi
realTronsi

@firefish

#include <stdio.h> int main(void) { int foo[2] = {1, 2}; printf("%d", foo[2]); }

interesting result

2 years ago
1
firefish
firefish

@realTronsi
Well, the randomness occurs at compile-time, in the form of how to arrange the binary, rather than at runtime.

2 years ago
1
firefish
firefish

@realTronsi
is 4195632 interesting at all?

2 years ago
1
realTronsi
realTronsi

@firefish
what? I don't see how pseudorandomness can occur from compiling?

2 years ago
1
realTronsi
realTronsi

@firefish
not sure what it comes from, doesn't change from manipulating the list

2 years ago
1
firefish
firefish

@realTronsi
Ah, just realised. clang does things differently than to gcc.
image

2 years ago
1
firefish
firefish

@realTronsi
I know, the clang version works as expected however the gcc one does not

2 years ago
1
firefish
firefish

@realTronsi
@fuzzyastrocat
Nightmare code: malloc bomb + fork bomb
image

2 years ago
1
realTronsi
realTronsi

@firefish
what is that syntax highlighting ewww

2 years ago
1
firefish
firefish

@realTronsi
my theme, thanks for reminding me that it is not normal syntax highlighting

2 years ago
1
fuzzyastrocat
fuzzyastrocat

@RohilPatel
Please actually cover node's strength and main use case: writing server applications.

2 years ago
2
realTronsi
realTronsi

@fuzzyastrocat
and also having simultaneously the worst and best package manager

2 years ago
1
RohilPatel
RohilPatel

Data passing is where you send something from the backend to the front end.

app.get('/', (_, res) => { res.render('index', { x: 5, y: 6, z: 9 } }
<%= x %> <!-- Returns "5" -->

@realTronsi

2 years ago
1
realTronsi
realTronsi

oh, just cover templating engines instead then

@RohilPatel

2 years ago
1
fuzzyastrocat
fuzzyastrocat

@RohilPatel
Uh, where? All I see in the tutorial is modules.

2 years ago
1
1
fuzzyastrocat
fuzzyastrocat

@RohilPatel
The point of a tutorial is to explain how to do something. Nowhere in this tutorial does it explain anything about how to do server-side things.

2 years ago