dir.by  
  Поиск  
Программирование, разработка, тестирование
Node.js (это web сервер исполняющий js файлы)
Пишем и подключаем свой модуль в Node.js
  Посмотрели 9214 раз(а)    
 Пишем и подключаем наш модуль в Node.js 
последнее обновление: 21 апреля 2018
Шаг 1) Создадим свой модуль т.е. создадим новый файл myBook.js в текстовом редакторе
  JavaScript     Файл D:/NodeApp/myBook.js
// моя переменная
var bookName = 'Волшебник Земноморья';

// моя функция
function getBookInfo()
{
     return "Я читаю книгу " + bookName + " на 219 странице";
}

// экспортные переменные и функции
module.exports.name = bookName;
module.exports.info = getBookInfo;
Чтобы переменные и функции описанные в вашем модуле были доступны основной программе, мы их добавили в module.exports
Шаг 2) Создадим главный файл test.js в текстовом редакторе
  JavaScript     Файл D:/NodeApp/test.js
// подключаем свой модуль
var myBookModule = require('./myBook');

// подключаем встроенный модуль
var http = require('http');

// создаем web server
var server = http.createServer(function (request, response)
{
     response.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'});

     // отображаем в браузер 'Волшебник Земноморья'
     response.write(myBookModule.name);

     // новая строка
     response.write('<BR>');

     // отображаем в браузер 'Я читаю книгу Волшебник Земноморья на 219 странице'
     response.write(myBookModule.info());

     // завершаем отображение в браузере
     response.end();
});

// прослушиваем web server
server.listen(3000);
Внимание!
Чтобы подключить наш модуль нужно писать путь ./
Это означает что мы подключаем свой модуль с текущей папки
var myBookModule = require('./myBook');

Встроенные модули подключаются просто по имени
var http = require('http');

Внимание!
Чтобы использовать переменные или функции вашего модуля нужно писать объект_модуля.экспротное_имя
Пример:
используем переменную
myBookModule.name

используем функцию
myBookModule.info()
Шаг 3) Запускаем Node.js сервер
Создадим новый файл run.bat в текстовом редакторе
  Файл D:/NodeApp/run.bat
node test.js
Шаг 4) Открываем браузер и вводим web адрес
Глобальные переменые в нашем модуле
Node.js предоставляет специальный объект global который виден для любого модуля.
  JavaScript     Наш модуль myBook.js
// мои переменные
var bookName = 'Волшебник Земноморья';
var bookPrice = '180';

// моя функция
function getBookInfo()
{
return "Я читаю книгу " + bookName + " на 219 странице";
}

// экспортные переменные и функции
module.exports.name = bookName;
module.exports.info = getBookInfo;

// глобальная переменная
global.price = bookPrice;
  JavaScript     Главный файл test.js
// подключаем свой модуль
var myBookModule = require('./myBook');

// подключаем встроенный модуль
var http = require('http');

// создаем web server
var server = http.createServer(function (request, response)
{
response.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'});

// отображаем в браузер 'Волшебник Земноморья'
response.write(myBookModule.name);

// новая строка
response.write('<BR>');

// отображаем в браузер 'Я читаю книгу Волшебник Земноморья на 219 странице'
response.write(myBookModule.info());

// новая строка
response.write('<BR>');

// отображаем в браузер ГЛОБАЛЬНУЮ переменную '180'
response.write(price);

// завершаем отображение в браузере
response.end();
});

// прослушиваем web server
server.listen(3000);
К нашей глобальной переменной мы можем обращаться через global.price или просто price

По правилам хорошего написания программы не рекомендуется использование глобальных переменных, а лучше использовать экспортные переменные внутри модуля.
Наш модуль возвращающий только один объект
  JavaScript     Наш модуль myBook.js
// мой класс
function BookInfo()
{
     this.bookName = 'Волшебник Земноморья';
     this.bookPrice = '180';
    
     this.getBookInfo = function()
     {
return "Я читаю книгу " + this.bookName + " на 219 странице";
     }
}

// экспорт
module.exports = BookInfo;
  JavaScript     Главный файл test.js
// подключаем свой модуль
var myBookModule = require('./myBook');

// создаем объект
var book = new myBookModule();

// подключаем встроенный модуль
var http = require('http');

// создаем web server
var server = http.createServer(function (request, response)
{
response.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'});

// отображаем в браузер 'Я читаю книгу Волшебник Земноморья на 219 странице'
response.end(book.getBookInfo());
});

// прослушиваем web server
server.listen(3000);
Вывод !!!
Вариант 1) Если в нашем новом модуле 'myBook.js' мы пишем
exports.экспортное_название1 = название_переменной1;
exports.экспортное_название2 = название_переменной2;
...
exports.экспортное_названиеA = название_функции1;
...
то в главном файле test.js мы используем экспортные_названия

Вариант 2) Если в нашем новом модуле 'myBook.js' мы пишем
exports = название_класса;
то в главном файле test.js мы НЕ используем экспортные_названия

Подробнее в примерах:
Наш новый модуль myBook.js
главный файл test.js
Вариант1
// мои переменные
var bookName = 'Волшебник моря';
var bookPrice = '180';

// моя функция
function getBookInfo()
{
    return "Я читаю книгу";
}

// экспортные переменные и функции
module.exports.name = bookName;
module.exports.price = bookPrice;
module.exports.info = getBookInfo;
// подключаем свой модуль myBook.js
var myBookModule = require('./myBook');

// используем свойства
myBookModule.name = "aaa";
myBookModule.price = "120";

// используем функциию
myBookModule.info();
Вариант2
// мой класс
function BookInfo()
{
    this.bookName = 'Волшебник моря';
    this.bookPrice = '180';

    this.getBookInfo = function()
    {
        return "Я читаю книгу"
    }
}

// экспорт
module.exports = BookInfo;
// подключаем свой модуль myBook.js
var myBookModule = require('./myBook');

// создаем объект класса
var book = new myBookModule();

// используем свойства
book.bookName;
book.bookPrice;

// используем функции
book.getBookInfo();
 
← Предыдущая тема
Как устроена внутри функция require и что происходит когда пишем require("Имя_Модуля") в Node.js
 
Следующая тема →
'Express' модуль Node.js !!!!!!!!!!!!
 
Ваши Отзывы ... комментарии ...
   
Вашe имя
Ваш комментарий (www ссылки может добавлять только залогиненный пользователь)

  Объявления  
  Объявления  
 
Что такое Node.js ?
Как узнать версию Node.js ?
Установка Node.js (скачиваем и устанавливаем для Windows)
Как обновить версию Node.js (установить последнюю версию) ?
npm в Node.js
Что такое npm в Node.js?
Как узнать версию npm (Node.js) ?
Как обновить версию npm (установить последнюю версию) ? | Node.js
Файл package.json в Node.js
Разница между тильдой(~) и крышкой(^) в package.json | Node.js
Файл package-lock.json в Node.js
"npm init" | Результат: создает пустой файл package.json и заполняет этот файл данными по умолчанию | Node.js
"npm install имя_пакета" | Результат: устанавливает JavaScript библиотеку (пакет) | Например выполняем в командной строке "npm install jquery" | добавит jQuery библиотку в папку node_modules | Node.js
"npm install" | Результат: устанавливает JavaScript библиотеки (пакеты) которые указаны в файле package.json | Node.js
"npm list -g" (посмотреть список всех установленных глобальных пакетов) | Node.js
"npm install -g имя_пакета" (глобальная установка пакета) | Node.js
"npm uninstall -g имя_пакета" (глобальное удаление пакета) | Node.js
Выполняем в командной строке "npm run EvgenConvertCSS" | Файл package.json вот такой: "scripts": {"EvgenConvertCSS": "node-sass --include-path scss 1.scss 1.css"} | Node.js
Выполняем в командной строке "npm run EvgenMyCommand" | Файл package.json вот такой: "scripts": {"EvgenMyCommand": "mkdir AAA"} | Node.js
Выполняем в командной строке "npm run MyScript1" | Файл package.json вот такой: "scripts": {"MyScript1": "npm run MyScript2"} | Node.js
watch опция в npm скриптах (наблюдаем за изменениями в файлах)
Отладка NodeJS
Отладка Node.js. Смотрим значения переменных, стэк функций, breakpoints в Visual Studio Code
Пишем Node.js приложение в текстовом редакторе (Notepad, Far)
Новое Node.js приложение (создаем приложение в текстовом редакторе, запуск в console)
Добавляем express пакет в Node.js (в Windows console)
Загрузка html файла и вывод на экран в Node.js (создаем приложение в текстовом редакторе, запуск в console)
Используем модуль socket.io
Простое приложение с socket.io в Node.js (создаем приложение в текстовом редакторе, запуск в console)
Пишем Node.js проект в Visual Studio Code
Новый Node.js проект (проект создаем в Visual Studio Code)
Создаем новый Node.js проект с websocket (проект создаем в Visual Studio Code) | client & server
Пишем Node.js проект в Visual Studio
Новый Node.js проект (проект создаем в Visual Studio)
Добавляем express пакет в Node.js (в Visual Studio)
Загрузка html файла и вывод на экран в Node.js (проект в Visual Studio)
Chat (пользователь пишет сообщение и у других появляется сообщение) используя socket.io в Node.js (проект в Visual Studio)
https localhost certificate
Create https localhost certificate for nodejs
Как устроены модули в Node.js (require, exports)
Что такое модули в Node.js ?
Как устроена внутри функция require и что происходит когда пишем require("Имя_Модуля") в Node.js
Создаем свой модуль в Node.js
Пишем и подключаем свой модуль в Node.js
Встроенные модули Node.js
'Express' модуль Node.js !!!!!!!!!!!!
Хостинг Node.js на вашем сайте
Хостинг и установка Node.js на вашем сайте. Настройка Node.js в cPanel
В Node.js меняю js файл а отображается старый кэшированный js файл. Перезапустить Node.js на вашем сайте в cPanel
Добавляем npm пакеты в Node.js на вашем сайте (используем cPanel)
Error during WebSocket handshake... Хостинг Node.js на вашем сайте
Heroku.com бесплатный сервис. Запуск вашего Node.js приложения на Heroku.com
Для использования Heroku.com нужно установить: Git, Node.js
Регистрация на сайте Heroku.com
Инсталяция коммандной строки "Heroku CLI"
"Heroku CLI" работает очень медленно для Windows
Запуск вашего Node.js приложения на Heroku.com
WWW сайты для изучения Node.js
Сайты для изучения Node.js

  Ваши вопросы присылайте по почте: info@dir.by  
Яндекс.Метрика