<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.sgy.io/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.sgy.io/feed.php">
        <title>Wiki SGY.io - web:javascript:nodejs</title>
        <description></description>
        <link>https://wiki.sgy.io/</link>
        <image rdf:resource="https://wiki.sgy.io/_media/wiki:logo.png" />
       <dc:date>2026-05-12T13:06:26+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.sgy.io/web:javascript:nodejs:api?rev=1755361811&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sgy.io/web:javascript:nodejs:bots?rev=1755361811&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sgy.io/web:javascript:nodejs:cache?rev=1755361811&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sgy.io/web:javascript:nodejs:db-migrate?rev=1755361811&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sgy.io/web:javascript:nodejs:http2?rev=1755361811&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sgy.io/web:javascript:nodejs:json-server?rev=1755361811&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sgy.io/web:javascript:nodejs:nestjs?rev=1755361811&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sgy.io/web:javascript:nodejs:npm?rev=1755361811&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sgy.io/web:javascript:nodejs:swagger?rev=1755361811&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sgy.io/web:javascript:nodejs:toc?rev=1755361811&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.sgy.io/_media/wiki:logo.png">
        <title>Wiki SGY.io</title>
        <link>https://wiki.sgy.io/</link>
        <url>https://wiki.sgy.io/_media/wiki:logo.png</url>
    </image>
    <item rdf:about="https://wiki.sgy.io/web:javascript:nodejs:api?rev=1755361811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-16T16:30:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>api</title>
        <link>https://wiki.sgy.io/web:javascript:nodejs:api?rev=1755361811&amp;do=diff</link>
        <description>Faire un API en NodeJS

Resources

	*  10 Best Practices for Writing Node.js REST APIs
	*  Public APIs
	*  The Problem with API Authentication in Express

Exemple d&#039;un API simple


// grab the packages that we need for the user model
var mongoose = require(&#039;mongoose&#039;);
var Schema = mongoose.Schema;
var bcrypt = require(&#039;bcrypt-nodejs&#039;);

// user schema
var UserSchema = new Schema({
    name: String,
    username: { type: String, required: true, index: { unique: true }},
    password: { type: Str…</description>
    </item>
    <item rdf:about="https://wiki.sgy.io/web:javascript:nodejs:bots?rev=1755361811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-16T16:30:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>bots</title>
        <link>https://wiki.sgy.io/web:javascript:nodejs:bots?rev=1755361811&amp;do=diff</link>
        <description>Créer un bot pour Twitter

Pris de Building Bots with Node.js.
$ npm install twitter --save


Dans le fichier index.js:


const TwitterPackage = require(&#039;twitter&#039;);

const secret = { 
    consumer_key: &#039;PUT YOURS&#039;, 
    consumer_secret: &#039;PUT YOURS&#039;, 
    access_token_key: &#039;PUT YOURS&#039;, 
    access_token_secret: &#039;PUT YOURS&#039; 
} 
 
const twitter = new TwitterPackage(secret);</description>
    </item>
    <item rdf:about="https://wiki.sgy.io/web:javascript:nodejs:cache?rev=1755361811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-16T16:30:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cache</title>
        <link>https://wiki.sgy.io/web:javascript:nodejs:cache?rev=1755361811&amp;do=diff</link>
        <description>Redis

Redis s&#039;installe avec Homebrew (ou Chocolate sur Windows).

Pour utiliser Redis avec Node, on doit installer le module redis:
$ npm install redis --save

var redis = require(&#039;redis&#039;);

var client = redis.createClient(6379, &#039;127.0.0.1&#039;);


Ressources</description>
    </item>
    <item rdf:about="https://wiki.sgy.io/web:javascript:nodejs:db-migrate?rev=1755361811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-16T16:30:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>db-migrate</title>
        <link>https://wiki.sgy.io/web:javascript:nodejs:db-migrate?rev=1755361811&amp;do=diff</link>
        <description>db-migrate

Dans la table Projects:


    portfolioId: {
      type: &#039;string&#039;,
      foreignKey: {
        name: &#039;project_portfolio_id_fk&#039;,
        table: &#039;portfolios&#039;,
        mapping: &#039;id&#039;,
        rules: {
          onDelete: &#039;CASCADE&#039;
        },
      }
    },</description>
    </item>
    <item rdf:about="https://wiki.sgy.io/web:javascript:nodejs:http2?rev=1755361811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-16T16:30:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>http2</title>
        <link>https://wiki.sgy.io/web:javascript:nodejs:http2?rev=1755361811&amp;do=diff</link>
        <description>HTTP2 avec Node


const http2 = require(&#039;http2&#039;);
const server = http2.createSecureServer({cert, key}, onRequest);

function push (stream, filePath) {  
    const {file, headers} = getFile(filePath);
    const pushHeaders = {[HTTP2_HEADER_PATH]: filePath };
  
    stream.pushStream(pushHeaders, (pushStream) =&gt; {
        pushStream.respondWithFD(file, headers);
    });
}

function onRequest (req, res) {  
    // Push files with index.html
    if (reqPath === &#039;/index.html&#039;) {
        push(res.stre…</description>
    </item>
    <item rdf:about="https://wiki.sgy.io/web:javascript:nodejs:json-server?rev=1755361811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-16T16:30:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>json-server</title>
        <link>https://wiki.sgy.io/web:javascript:nodejs:json-server?rev=1755361811&amp;do=diff</link>
        <description>JSON Server

Documentation

Arguments:


--port 3001
--delay 2500
--watch db.json


Server

On peut personnaliser des fonctionnalités de json-server en ayant une application server.js qui démarre le json-server.

Router

Démarrer json-server avec des routes personnalisées:</description>
    </item>
    <item rdf:about="https://wiki.sgy.io/web:javascript:nodejs:nestjs?rev=1755361811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-16T16:30:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nestjs</title>
        <link>https://wiki.sgy.io/web:javascript:nodejs:nestjs?rev=1755361811&amp;do=diff</link>
        <description>NestJS

Documentation
npm install -g @nestjs/cli</description>
    </item>
    <item rdf:about="https://wiki.sgy.io/web:javascript:nodejs:npm?rev=1755361811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-16T16:30:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>npm</title>
        <link>https://wiki.sgy.io/web:javascript:nodejs:npm?rev=1755361811&amp;do=diff</link>
        <description>NPM

NPM est le gestionnaire de packetages de Node.js (Node.js Package Manager).

Installation mac (sans sudo)

	*  Install Node.js from &lt;https://nodejs.org/en/download/&gt;
	*  Update to the latest version of npm : $ npm install npm -g
	*  Make a new folder for the npm global packages : $ mkdir ~/.npm-packages</description>
    </item>
    <item rdf:about="https://wiki.sgy.io/web:javascript:nodejs:swagger?rev=1755361811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-16T16:30:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>swagger</title>
        <link>https://wiki.sgy.io/web:javascript:nodejs:swagger?rev=1755361811&amp;do=diff</link>
        <description>Swagger

Incorporer Swagger avec JSDoc dans un projet TypeScript.

Installer les dépendances:


npm install swagger-jsdoc swagger-ui-express -S
npm install @types/swagger-ui-express @types/swagger-jsdoc -D


Exemple de fichier SwaggerSpec.ts:


import * as swaggerJsdoc from &#039;swagger-jsdoc&#039;;

const swaggerDefinition = {
  info: {
    title: &#039;Portfolio API&#039;,
    version: &#039;0.1.0&#039;,
    description: &#039;This is the REST API for Portfolio Client&#039;,
  },
  basePath: &#039;/api/v1&#039;,
};

const options = {
  swagg…</description>
    </item>
    <item rdf:about="https://wiki.sgy.io/web:javascript:nodejs:toc?rev=1755361811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-16T16:30:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>toc</title>
        <link>https://wiki.sgy.io/web:javascript:nodejs:toc?rev=1755361811&amp;do=diff</link>
        <description>NodeJS

	*  Faire un API en NodeJS
	*  Créer un bot pour Twitter
	*  Redis
	*  db-migrate
	*  HTTP2 avec Node
	*  JSON Server
	*  NestJS
	*  NPM
	*  Swagger

Installation

Mac OS X

	*  Pour une installation sur Mac OS X, tout simplement télécharger l&#039;installateur indépendant sur la page de téléchargement.
	*  Ouvrir le fichier .pkg téléchargé et suivre les étapes.</description>
    </item>
</rdf:RDF>
