КОнтакты, предложения, отзывы

.rar или .zip
Вложение
Онлайн-чат
На этом сайте, вы найдёте полезную информацию, практические советы в области веб-программирования, веб-дизайна и веб-разработок в целом. Мы с удовольствием поделимся с вами реальными примерами и решениями задач, связанных с jQuery , JavaScript , PHP и MySQL , версткой сайтов , поможем разобраться новичкам с современными технологиями, такими как Ajax , HTML5 , CSS3 и многими другими.

Знакомство с Node js

Установка

Node.js представляет среду выполнения кода на JavaScript, которая построена на основе движка JavaScript Chrome V8, который позволяет транслировать вызовы на языке JavaScript в машинный код. Node.js прежде всего предназначен для создания серверных приложений на языке JavaScript. Хотя также существуют проекты по написанию десктопных приложений (Electron) и даже по созданию кода для микроконтроллеров. Но прежде всего мы говорим о Node.js, как о платформе для создания веб-приложений.


В этом качестве Node.js - это полноценный веб-сервер, только, в отличие от Apache позволяющий работать асинхронно с одновременным количеством сетевых соединений, и код на нём выполняется не строчка за строчкой как PHP, а задачи выполняются независимо и одновременно.


Нода применяется для создания чатов, онлайн-игр, например система чатов вк реализована как раз с помощью Node.js.

После установки открываем консоль и вводим команду

  node -v
Если показало версию, значит, всё ОК, Нода установлена и готова к работе.

NPM

Нода сделана модульно, то есть для каждой задачи подключается собственный модуль.

https://www.npmjs.com
Замечательный пакетный менеджер Node.js, с помощью которого вы сможете получать и устанавливать, почти все что только может пожелать душа веб-разработчика.
Для установки модуля из хранилища NPM нужно набрать команду:
  npm install <имя модуля>
  // или просто 
  npm i <имя модуля>
При установке npm ищет папку node_modules сначала в текущей директории, а потом выше по директориям, если не находит папку, то ищет папку, в которой лежит package.json, и ставит в неё.
Для обновления установленных модулей используется команда:
  npm up // сокращённая версия npm update
  npm remove <имя модуля> // удалит модуль
  npm search <ключевые слова>
Для установки модуля из github репозитария достаточно набрать в консоли
  node i <url-адрес репозитария>
Каждый модуль во избежание конфликтов версий ставит свои зависимости в отдельную папку node_modules

иногда нужно установить модуль не локально в папку со скриптом, а глобально в систему, чтобы он был доступен из любой точки. Для этого набираем в консоли команду

  npm i -g mocha
Чтобы посмотреть список установленных модулей локальных и глобальных применяются команды
  npm list
  npm list -g

Package.json

Для перечисления зависимостей вашей программы и автоматической их установки используется файл package.json. Чтобы создать его, перейдите в папку сайта и наберите команду npm init
  cd C:/OpenServer/domains/node
  npm init
Теперь для сохранения зависимостей программы устанавливаем модуль с ключем --save и он автоматически пропишется в список зависимостей package.json со ссылкой на версию пакета
  npm install --save beeper
Для получения справки по командам наберите npm help (например npm help prunc) Далее если зайти в папку где находится наш созданный package.json и набрать в консоли команду npm install, то модуль со всеми зависимостями будет установлен. И теперь если нужно будет развернуть программу где-то ещё, нам не придётся копировать всю папку node_modules, а достаточно одного package.json и команды npm i .
Для установки модуля глобально в систему нужно набрать команду:
  npm -g i <имя модуля>
  // Обновление и другие операции с глобальными модулями
  npm -g update <имя модуля>
  npm -g remove <имя модуля>

Менеджеры процессов

Для боевых серверов используются менеджеры процессов pm2 и forever, которые автоматически перезапустят программу при изменении файлов или перезапуске сервера и позволяют отслеживать потребляемые приложением ресурсы.

    npm i -g pm2
    npm i -g forever
    
    pm2 start index.js
    
    pm2 list // покажет список отслеживаемых приложений (процессов)
    pm2 info index  // информация о конкретном приложении
    pm2 monit // мониторинг процессов
    
    pm2 startup windows // Эта команда генерирует и настраивает сценарий запуска менеджера PM2 и всех его процессов вместе с загрузкой сервера. Также нужно указать платформу (в данном случае это ubuntu)
    
    pm2 stop index
    pm2 stop 0 // остановит процесс с id 0
    pm2 stop all  
    pm2 restart index.js
    pm2 delete index // убрать процесс из списка
    pm2 describe index
    pm2 reload all
    
    pm2 start npm -- start   
    pm2 start index.js --watch // автоматически перезапускает сервер при изменении файлов
    
  

Подключение модулей

Подключается модуль (даже стандартный) через require:
  require('express');
  var tasks = require('./models/task'); // указываем путь к файлу, без .js в конце
Функции и переменные. объявленные в модуле, не становятся глоббальными при подключении, они доступны только внутри модуля. Для возвращения функций или переменных используется объект exports:
// файл user.js
function User(name){
  this.name = name;
}

exports.User = User;  // или
module.exports.User = User; // или
this.User = User;
module.exports = User; // напрямую выносим функцию, просто exports не сработает

// файл server.js
var user = require('user');

var vasua = user.User('Вася');
Если же мы хотим сделать переменную глобальной явно, используется глобальный объект global:
global.User = User; // нежелательно
Если при указании подключаемого файла без расширения Node не находит файл .js, он ищет файл .node, далее ищет файл .json, интерпретирует его и загружает. Если файл в указанной директории не найден, ищется папка, а в ней файл index.js
reguire ('./c');

//файл c.json
{
  "hello": "Привет"
}
Если путь не указан явно, модуль будет искаться в папке node_modules сначала из текущей директории, а потом выше по директория. Если указать переменную NODE_PATH, то поиск модуля будет вестись из неё
NODE_PATH = .  node server.js
set NODE_PATH = .  node server.js  // под Windows

Наиболее популярные и полезные модули

Util - позволяет выводить объекты в виде строки и другое..
EventEmitter - работа с событиями
Request - отправка данных на сервер
fs - для работы с файлами
url - для разбора урла
imap, pop3 - для получения почты nodemailer - для отправки почты
Полезности : {
Postman расширение гугла, для имитации отправки пост-запросов
}

Библиотеки

/* LIBRARIES */

Underscore.js // полезный функционал для работы с массивами, объектами и т.п. underscorejs.org // насайте gickbrains в разделе "вебинары" есть обзор библиотек

lodash  // тот же underscore, быстрее работает

sugar.js //sugarjs.com - тоже классная лайбрари, ф-ция merge то же что и $.extend()

moment.js // momentjs.com

async.js // решает проблему бесконечных калбэков (waterfall - когла одна функция зависит от результата работы другой (водопад)))

cheerio // типа как джейквери

zombie.js // имитация браузера
phanto,.js // полноценная имитация браузера
casper.js 

Getting Started!

Простейший сервер на ноде создаётся так:
  "use strict";
  
  var http = require("http");
  
  http.createServer(function(request,response){
    
    response.writeHead(200, {"Content-Type": "text/html; charset=utf-8"}); // высылаем браузеру заголовки 
    
    response.write("hello! " + request.method + "<br>"); // выводим на экран приветствие
    
    response.end("The end"); // завершение с выводом на экран строки
       
  }).listen(80, "127.0.0.1",function(){
    console.log("Сервер начал прослушивание запросов на порту 80");
  });
 // чтобы запустить скрипт из консоли, переходим в папку с проектом и набираем node <имя файла>
2017.05.30 117

Разговаривают два программиста: — Бля. А у меня духовка не включается... — Как так?... что пишет?
Войдите или Зарегистрируйтесь чтобы оставить комментарий

Комментарии


    Яндекс.Метрика Яндекс.Метрика