Поширені бібліотеки
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
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
Прописуємо правила для ввода "--ключа" "значення" у консольний рядок
- import:
const argv = require("yargs").argv;
-
Вводимо в термінал:
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
Дивись приклад
npm install dotenv
require('dotenv').config();
додамо у файл- Потім створюємо файл
.env
у кореневому каталозі нашого застосункута додаємо в нього змінні. SECRET_KEY=123456
NODE_ENV=development
mongoose
Mongoose представляє спеціальну ODM-бібліотеку (Object Data Modelling) для роботи з MongoDB
npm install mongoose -S
mongoose
mongoose.Promise = global.Promise;
const mongoose = require('mongoose');
Підключення до бази виконується методом mongoose.connect(), в який першим параметром передається адреса на підключення до бази даних, а другим – об'єкт налаштувань:
mongoose.connect(process.env.DB_HOST, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true, });
За допомогою методу mongoose.disconnect() можна відключитися від бази даних.