Home

Поширені бібліотеки

Зміст

  1. express - фреймворк для ноди
  2. CORS - прибирає конфлікт між різними серверами і браузером
  3. nodemon - перезапуск при змінах
  4. nanoid - генерація ID
  5. commander - консольний додаток
  6. yargs - консольний додаток
  7. chalk - Кольоровий термінал
  8. color - Кольоровий термінал
  9. joi - дата валідатор
  10. morgan - для node.js логування
  11. dotenv змінні середовища
  12. Mongoose робота з базою данич MongoDB

express - фреймворк для ноди

  • npm i express
  • const express = require("express");
  • const app = express();
  • app.use("/cont", check); // Міделвара для "/cont"
  • app.get("/cont", async (req, res) => {})
  • app.put
  • app.post
  • app.delete
  • app.listen(3000, ()=>{})

CORS

npm i cors прибирає конфлікт між різними серверами і браузером

Приклад:

npm install cors

const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());

app.get('/', (req, res, next) => {
    res.json({ message: 'CORS is activated' });
});
app.listen(3000, function () {
    console.log('CORS-enabled web server listening on port 3000');
});

                

nodemon - перезапуск при змінах

Автоматичне оновлення терміналу при змінах

  • Встановити npm i nodemon -D
  • Прописати скрипт: "dev": "nodemon index.js"
  • npm run dev

--watch - перезапуск при змінах

Автоматичне оновлення терміналу з коробки при змінах з 18v

  • Те саме що і nodemon
  • Пишем скрипт "start:dev": "node --watch express-serv.js"
  • Пишем npm run start:dev
"start:dev": "node --watch express-serv.js"

nanoid - генерація ID

npm i nanoid

    const {nanoid} = require("nanoid");
    const obj = {
        id: nanoid();
    }
    

commander - консольний додаток

npm i commander

Готове рішення замість process.argv

    const { program } = require('commander');

    program
    .option("-a, --action <action>", "Action to invoke")
    .option("-i, --id <id>", "Bols id")
    .option("-t, --title <title>", "Bol title")
    .option("-au, --author <author>", "Bol author")

    program.parse(process.args);

    const options = program.opts();
    // console.log(options);

    invoActions(options).catch(err => console.error(err));

yargs - консольний додаток

npm i yargs

Прописуємо правила для ввода "--ключа" "значення" у консольний рядок

  1. import: const argv = require("yargs").argv;
  2. Вводимо в термінал: node src/index.js --action create --f myfile.txt --contene asdasd

    Відповідь:

            console.log("argv:", argv);
            /*
            argv: {
                _: [],
                action: 'create',
                f: 'myfile.txt',
                contene: 'asdasd',
                '$0': 'src\\index.js'
              }
            */

chalk - Кольоровий термінал

npm i chalk@4.1.2 Посилання

    import chalk from 'chalk';
    console.log(chalk.blue('Hello world!'));
    const log = console.log;
    log(chalk.blue('Hello') + ' World' + chalk.red('!'));

    log(chalk.green(
        'I am a green line ' +
        chalk.blue.underline.bold('with a blue substring') +
        ' that becomes green again!'
    ));

colors - Кольоровий термінал

npm i colors Посилання

    const colors = require('colors');
    console.log('hello'.green); // outputs green text
    console.log('i like cake and pies'.underline.red) // outputs red underlined
    console.log('inverse the color'.inverse); // inverses the color
    console.log('OMG Rainbows!'.rainbow); // rainbow
    console.log('Run the trap'.trap); // Drops the bass

joi - дата валідатор

npm i joi Дивись приклад

    const Joi = require('joi');

    const datavalidator = (data) => {
        const joiSchema = Joi.object({
            fileName: Joi.string().min(4).max(20).required(),
            content: Joi.string().max(100),
            password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')),
        }).with('fileName', 'content');
    
        return joiSchema.validate(data);
    } 

morgan - логування

npm i morgan Дивись приклад

ip::1 - - [12/Feb/2025:20:12:10 +0000] "GET /cont?apikey=1234 HTTP/1.1" 200 1129 "-" "PostmanRuntime/7.43.0"

dotenv - змінні оточення

npm install dotenv Дивись приклад

  1. npm install dotenv
  2. require('dotenv').config(); додамо у файл
  3. Потім створюємо файл .env у кореневому каталозі нашого застосункута додаємо в нього змінні.
  4. SECRET_KEY=123456
  5. NODE_ENV=development

mongoose

Mongoose представляє спеціальну ODM-бібліотеку (Object Data Modelling) для роботи з MongoDB

npm install mongoose -S mongoose

  1. mongoose.Promise = global.Promise;
  2. const mongoose = require('mongoose');

Підключення до бази виконується методом mongoose.connect(), в який першим параметром передається адреса на підключення до бази даних, а другим – об'єкт налаштувань:

    mongoose.connect(process.env.DB_HOST, {
        useNewUrlParser: true,
        useCreateIndex: true,
        useUnifiedTopology: true,
    });
                

За допомогою методу mongoose.disconnect() можна відключитися від бази даних.