# create-eznode

> ![EZNode Logo](https://image.noelshack.com/fichiers/2023/36/6/1694287497-eznode.png)

Latest version **1.0.7** (published 2023-09-09) · 0 weekly downloads

## Install

```sh
npm install create-eznode
pnpm add create-eznode
yarn add create-eznode
bun add create-eznode
```

Provides the command `create-eznode`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.7 |
| Published | 2023-09-09 |
| First published | 2023-09-09 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 7 |
| Unpacked size | 10.1 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| Maintainers | emmanuelb |

## Links

- npm: https://www.npmjs.com/package/create-eznode
- npm.io page: https://npm.io/package/create-eznode

## Dependencies (7)

- [ora](https://npm.io/package/ora.md) ^7.0.1
- [dotenv](https://npm.io/package/dotenv.md) ^16.3.1
- [express](https://npm.io/package/express.md) ^4.18.2
- [request](https://npm.io/package/request.md) ^2.88.2
- [socket.io](https://npm.io/package/socket.io.md) ^4.6.2
- [node-fetch](https://npm.io/package/node-fetch.md) ^3.3.1
- [compression](https://npm.io/package/compression.md) ^1.7.4

## Recent versions

- 1.0.7 (latest) — 2023-09-09
- 1.0.6 — 2023-09-09
- 1.0.5 — 2023-09-09
- 1.0.4 — 2023-09-09
- 1.0.3 — 2023-09-09
- 1.0.2 — 2023-09-09
- 1.0.1 — 2023-09-09
- 1.0.0 — 2023-09-09

## README

# EZNode - Créez des applications Client / Serveur NODE en un clin d'œil ! :rocket:

![EZNode Logo](https://image.noelshack.com/fichiers/2023/36/6/1694287497-eznode.png)

EZNode est un outil puissant qui vous permet de créer rapidement des applications basées sur Node.js avec une architecture Client / Serveur. En une seule commande, vous pouvez générer un projet minimaliste et fonctionnel, prêt à être utilisé.

### Installation rapide via npx (recommandé) :rocket:

```bash
npx create-eznode MonApplication
cd MonApplication
node server

Lancez votre navigateur et lancez la page http://localhost:3000/, vous pouvez communiquer avec le serveur et celui-ci vous répondra.
```

:warning: Un projet basique est déjà paramétré et prêt à être testé par défaut, les étapes détaillées ci-dessous ne sont pas indispensables :warning:

:hammer_and_wrench: Quelques fonctions utiles

Définir la page racine à envoyer au client lorsqu'il arrive sur le site

```javascript
network.setRootPage("pages/index.html");
```

Lancez le serveur sur le port de votre choix (par exemple, 3000)
```javascript
network.start(3000);
```

Créez une boucle d'écoute pour la réception des sockets, explication détaillée :

```javascript
network.handleReception((data) => {
  const header = data.header; // Dénomination de la donnée
  const socket = data.socket; // Socket pour communiquer avec le client
  const content = data.content; // Contenu de la donnée (objet, tableau, etc.)
});
```
Un élément reçu peut être décortiqué comme suit :
```javascript
  data = {header: "xposition", socket: socket, content: "237"}

  ou par exemple si on réceptionne un objet :

  data = {header: "coordinates", socket: socket, content: {"xposition": 234, yposition: 179}}
```

:bulb: Une situation concrète :
```javascript
network.handleReception((data)=>{
    switch(data.header){
        case "close":
            console.log("Le serveur vient d'être déconnecté.");
        break;
        case "connection":
            console.log("Client connecté, l'ID unique de sa socket : "+data.socket.id);
        break;
        case "disconnect":
            console.log("Déconnection d'un client, l'ID de sa socket était : "+data.socket.id);
        break;
        case "username":
            console.log(`Vous avez reçu un nom d'utilisateur : ${data.content} !`);
            // On répond poliment à l'émetteur de la sorte //
            data.socket.emit("hello", `Salut à toi ${data.content} !`);
        break;
    }
```

Vous pouvez rajouter à loisir autant de case dans votre boucle switch avec les noms de headers que vous désirez ( il faudra que le client emploi les mêmes noms d'headers afin que l'échange des données puisse s'effectuer ).

A savoir, par défaut, il ne faut **JAMAIS** supprimer ou modifier les noms des 3 premiers éléments présents initialement au début de la boucle, à savoir **"close"**, **"connection"** et **"disconnect"** qui sont déjà incorporés dans le package.

Si vous souhaitez contribuer à l'amélioration de EZNode, n'hésitez pas à soumettre des pull requests ou à signaler des problèmes dans notre repository GitHub.

Projet en phase de lancement développé par Emmanuel Beaugendre.

:scroll: Licence

Ce projet est sous licence MIT. Consultez le fichier LICENSE pour plus d'informations.

© 2023 EZNode. Tous droits réservés.

---
_Source: https://npm.io/package/create-eznode · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
