> For the complete documentation index, see [llms.txt](https://gurita-alexandru.gitbook.io/cloud-computing-2023-simpre/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gurita-alexandru.gitbook.io/cloud-computing-2023-simpre/cloudcomputing2022/set-up-node+express-back-end.md).

# Set-up Node+Express back-end\*

## 1. Git Repository

* Creați un **repository public nou** în GitHub ( !bifați optiunea **Add a README file** și selectați **Add .gitignore template - Node** )
* Copiați link-ul de clonare al repository-ului și rulați din terminal (eu folosesc git bash - vine la pachet cand instalati git) comanda **git clone** într-un folder local cu respectivul link

![](/files/E2aTkX6OomSTg53FI256)

![](/files/L4mEgC0J2xfAVeSBZqie)

## 2. Inițializarea Back-end

* Deschideți proiectul nou creat în editor
* În terminal, în directorul specific proiectului, rulați **npm init,** enter pentru toate opțiunile default. La final va fi creat fișierul package.json care stochează meta-date despre aplicație, informații despre dependințele proiectului etc
* Primul pachet pe care îl vom instala pentru a porni un server rudimentar este **Express**. Așadar, rulați **npm install express**.
* Pentru a oferi acces si altor servere către API-ul nostru, folosim pachetul CORS. Așadar, **npm install cors (**&#x6E;ota &#x31;**).**
* Pentru a opri și reporni serverul după fiecare modificare a codului, instalați și **Nodemon.** Așadar, rulați **npm install** **-g nodemon.**&#x20;
* By default, fișierul de pornire al aplicației este index.js . Creați fișierul **index.js** și inserați codul de mai jos

```
//index.js
const express = require('express')
const cors = require('cors')
const app = express();
app.use(cors())

const port = process.env.PORT || 8080;

app.get('/', (req, res) => {
  res.send('Hello World!')
});

app.listen(port, () => {
  console.log(`Example app listening on port ${port}!`)
});
```

* Pentru a porni serverul, rulați **node index.js** .&#x20;
* Pentru a porni serverul utilizând nodemon, rulați **nodemon index.js .** În cazul în care apare eroarea "...\nodemon.ps1 cannot be loaded because running scripts is disabled on this system.", rulați în terminal "Set-ExecutionPolicy RemoteSigned -Scope CurrentUser" și mai încercați odată.

În terminalul în care ați solicitat pornirea serverului ar trebui să primiți urmatorul mesaj "*Example app listening on port 8080*!". Pentru a închide procesul, CTRL-C.

* Pentru a trimite codul în repository-ul remote, rulați **git add .** , **git commit -m "Initial setup"** , **git push origin \[numele branch-ului]** . Pentru mai multe detalii despre Git - <https://education.github.com/git-cheat-sheet-education.pdf>

{% hint style="info" %}
Nota 1.: CORS - Cross Origin Resource Sharing este un este un mecanism pentru browsere care permite unui site care rulează la originea A să solicite resurse de la originea B. (explicație mai detaliată [aici](https://ro.ilusionity.com/732-the-access-control-allow-origin-header-explained-with-a-cors-example) și [aici](https://www.section.io/engineering-education/how-to-use-cors-in-nodejs-with-express/#:~:text=CORS%20stands%20for%20Cross%2DOrigin,origins%20can%20access%20the%20API.)). Practic, prin setarea unei politici CORS, putem preciza către ce origini ne dorim să trimitem date, iar celelalte vor fi restricționate.
{% endhint %}
