Что такое node.js и зачем он нужен?

  1. Node.js - это среда исполнения JavaSript.
  2. Первая версия платформы выпущена в 2009 году.
  3. Сейчас пользуется высокой популярностью.
  4. Сейчас платформа использует JavaScript движок V8 от Google, который используется в браузере Google Chrome.
  5. Позволяет создавать серверные приложения.
  6. Использует циклю событий с асинхронными функциями.

Что нужно знать перед изучением node.js

  1. Основы JavaScript
  2. HTTP
  3. JSON
  4. Стрелочные функции
  5. Промисы
  6. Шаблон проектирования MVC

Как установить node.js на компьютер?

1
2
3
4
5
sudo apt update
sudo apt install -y build-essential
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install -y nodejs
sudo apt update

Установка из официального сайта на Windows. На Linux - установка из официального и кастомного репозитория. Команда node без параметров запускает интерактивный интерпретатор (RELP) Команда node filename позволяет запускать программы на JavaScript. В node нет окружения браузера, а значит - объекта document. Но зато мы можем работать с файловой системой

Что такое NPM и зачем нужен он?

1
2
3
4
5
6
npm -v
npm help

node

node app.js
1
2
3
4
5
6
7
8
9
10
11
npm install lodash

npm install -g lodash

npm install -D lodash

npm install -save lodash

npm remove gulp --save-dev

npm update lodash --save
1
2
3
4
"scripts": {
    "start": "node index.js",
    "dev": "live-server"
  }
1
2
$ npm start
$ npm run dev
  1. Программа управления пакетами node.js - Node package manager
  2. Примерно аналогично программе pip в python, только для пакетов JavaScript
  3. Устанавливается вместе с node.js (изучать необязательно)
  4. Позволяет легко устанавливать пакеты/модули в систему
  5. Модули на практике это библиотеки JavaScript
  6. Облегчает совместную разработку и повторное использование кода
  7. позволяет создавать пользовательские скрипты

Как выглядит Hello world на node.js?

1
console.log("Hello, world!")
1
node index.js
1
node index
1
2
3
4
5
function hello(msg){
	concole.log(msg);
}

hello("Hello from function!")

Функции, классы.

Зачем нужен файл package.json?

1
2
3
4
5
6
7
8
9
10
11
12
13
{
  "name": "docker_web_app",
  "version": "1.0.0",
  "description": "node.js on docker",
  "author": "first last <first.last@example.com>",
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "express": "^4.16.1"
  }
}
  1. Манифест приложения, показывает основную информацию о приложении
  2. Перечисление зависимостей (имя и версия)
  3. Указания, если версия должна обновляться
  4. Может использоваться для создания скриптов
  5. Легко создать с помощью npm init
1
npm init

Как импортировать модули и файлы в программу?

1
2
3
4
5
6
7
//person.js
const person = {
	name: 'John Doe',
	age: 30
};

module.exports = person;
1
2
3
//index.js
const person = require('./person');
console.log(person.age);

Импорт переменной из другого файла Импорт функции, класса Импорт стандартного модуля Импорт стороннего модуля

Как создать простое серверное приложение?

Простой сервер

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
})

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
})

Работа с файлом index.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const http = require('http');
const fs = require('fs');

const hostname = '127.0.0.1';
const port = 3000;

fs.readFile('index.html', (err, html) => {
	if (err){
		throw err;
	}
	const server = http.createServer((req, res) => {
		res.statusCode = 200;
		res.setHeader('Content-Type', 'text/html');
		res.write(html);
		res.end();
	})

	server.listen(port, hostname, () => {
		console.log(`Server running at http://${hostname}:${port}/`);
	})
});

Знакомство с node.js и npm

Знакомство с node.js и npm