Основы Node JS ( I ). - Hallo sahabat Dev-Create, Pada Artikel yang anda baca kali ini dengan judul Основы Node JS ( I )., kami telah mempersiapkan artikel ini dengan baik untuk anda baca dan ambil informasi didalamnya. mudah-mudahan isi postingan
Artikel ES6,
Artikel javascript,
Artikel node.js,
Artikel командная строка,
Artikel Теория программирования, yang kami tulis ini dapat anda pahami. baiklah, selamat membaca.
Judul : Основы Node JS ( I ).
link : Основы Node JS ( I ).
Другими словами: Node.js предлагает вам возможность писать невероятно производительный серверный код с использованием JavaScript. Как говорится в официальном описании: Node.js — это среда выполнения, использующая тот же JavaScript-движок V8, который вы можете найти в браузере Google Chrome.
Если мы подключаем какой-то файл, то это не значит, что мы можем использовать все функции из этого файла.
Например, если вывод в консоль перенести из файла array.js в index.js, то получим ошибку.
Если из файла нужно что-то просто вывести, то достаточно подключить, как в примере выше. а если использовать функции вне модуля, нам нужно их экспортировать.
Файл array.js
Файл index.js
Упростим
Теперь есть подключенный модуль, который отслеживает различные события.
Создадим функцию, которая отслеживает конкретное событие. Её мы и будем вызывать, чтобы убедиться, что событие сработало. Это пример чисто технический. Сами создаем событие и сами его отслеживаем.
Создадим переменную, которая будет отвечать за обработчик события.
Для события используем метод
Например:
Теперь остается только вызвать придуманное нами событие и передать параметр
Первым параметром указываем конструктор, который будет наследовать. Вторым - что конкретно наследовать.
Круглые скобки событию не надо.
Теперь мы можем создавать различные объекты, которые будут сразу наследовать обработчик событий.
На самом деле util.inherits просто позволяет наследовать прототипы от одного конструктора к другому (не только конструктор событий).
Посмотрим на практике:
Код полностью index.js
Теперь мы можем добавить различные авто и получить у каждого событие.
Добавим в него текст:
Файл text.txt.
При этом важно указать кодировку, иначе кириллицу отображать не будет.
Читать и записывать файлы поможет модуль
Первый параметр - файл и путь к нему.
Второй - кодировка. В нашем случае -
Пока не прочитаем файл, код ниже не сработает.
Поместим весь этот текст в переменную
Первый параметр - название файла куда записывать. Если его нет, то он будет создан.Например
Второй параметр - данные (текст). Можно указать просто имя переменной, в которой этот текст.
Например:
Запустим
Ничего не произойдет в консоли, но зато появится новый файл
Откроем и там:
В этой функции первым параметром
Вывод слова Test для наглядности асинхронности кода.
Вторым параметром пойдет тот текст, который мы хотим записать. Можно его поместить в переменную, как и с синхронными функциями.
Третьим параметром функция в которой можно ничего не возвращать.
Первый параметр название файла который удаляем, или путь.
Второй - Функция, которая будет срабатывать, после завершения удаления конкретного файла.
В нее можно ничего не передавать, но она нужна, чтобы не было ошибки.
Первый параметр - путь (название папки)
Второй - не обязательный при синхроне.
Anda sekarang membaca artikel Основы Node JS ( I ). dengan alamat link https://dev-create.blogspot.com/2018/09/node-js-i.html
Judul : Основы Node JS ( I ).
link : Основы Node JS ( I ).
Основы Node JS ( I ).
Основы работы с Node JS. Часть - 1.
Node.js — это среда выполнения JavaScript, построенная на JavaScript-движке V8 из Chrome. В основе Node.js лежит событийно-управляемая модель с неблокирующими операциями I/O, что делает её легкой и эффективной.Все материалы по JavaScript
Другими словами: Node.js предлагает вам возможность писать невероятно производительный серверный код с использованием JavaScript. Как говорится в официальном описании: Node.js — это среда выполнения, использующая тот же JavaScript-движок V8, который вы можете найти в браузере Google Chrome.
Функции
- Простая:
- Именованная:
- Функция из функции:
function hello(){
console.log('Hello Proger');
};
hello();
var someName = function(){
console.log("SomeName Function");
};
someName();
function call(func){
func();
};
call(someName);
Модули
В файл array.js запишем:
let array_counter = function ( array ) {
return 'В массиве находится ' + array.length + ' элементов.';
};
console.log( array_counter( [ 1, 33, 45, 23, 7, 31, 40 ] ) );
Подключение к index.js
require('./array');
Если мы подключаем какой-то файл, то это не значит, что мы можем использовать все функции из этого файла.
Например, если вывод в консоль перенести из файла array.js в index.js, то получим ошибку.
Если из файла нужно что-то просто вывести, то достаточно подключить, как в примере выше. а если использовать функции вне модуля, нам нужно их экспортировать.
- Используется метод
modelr.exports = name_function;
- Директиве
require('./array');
присвоить переменную.
let counter = require('./array');
console.log( counter( [ 1, 33, 45, 23, 7, 31, 40 ] ) );
Файл array.js
let array_counter = function ( array ) {
return 'В массиве находится ' + array.length + ' элементов.';
};
module.exports = array_counter;
Несколько функций из одного модуля.
let array_counter = function ( array ) {
return 'В массиве находится ' + array.length + ' элементов.';
};
let some_value = 324;
let multiplay = function(x, y){
return `Число ${x} умножить на ${y} = ${x * y} `;
};
module.exports.array_counter = array_counter;
module.exports.some_value = some_value;
module.exports.multiplay = multiplay;
Файл index.js
let things = require('./things.js');
console.log( things.array_counter( [ 1, 33, 45, 23, 7, 31, 40 ] ) );
console.log(things.some_value);
console.log(things.multiplay(4, 8));
Упростим
module.exports.array_counter = function ( array ) {
return 'В массиве находится ' + array.length + ' элементов.';
};
module.exports.some_value = 324;
module.exports.multiplay = function(x, y){
return `Число ${x} умножить на ${y} = ${x * y} `;
};
let array_counter = function ( array ) {
return 'В массиве находится ' + array.length + ' элементов.';
};
let some_value = 324;
let multiplay = function(x, y){
return `Число ${x} умножить на ${y} = ${x * y} `;
};
module.exports = {
array_counter : array_counter,
some_value : some_value,
multiplay : multiplay
};
Отслеживание событий в Node
Подключение встроенных модулей.
Все делается через директивуrequire('name_modele');
let events = require('events');
Теперь есть подключенный модуль, который отслеживает различные события.
Создадим функцию, которая отслеживает конкретное событие. Её мы и будем вызывать, чтобы убедиться, что событие сработало. Это пример чисто технический. Сами создаем событие и сами его отслеживаем.
Создадим переменную, которая будет отвечать за обработчик события.
let myEmit = new events.EventEmitter();
Для события используем метод
.on()
. Первым аргументом - название события, которое отслеживаем. Вторым аргументом запишем функцию. которая будет срабатывать на это событие. Например:
myEvent.on('click', function(){console.log('Event click'});
Теперь остается только вызвать придуманное нами событие и передать параметр
text
.
let events = require('events');
let myEmit = new events.EventEmitter();
myEmit.on('some_event', function(text){
console.log(text);
});
myEmit.emit('some_event', 'Обработчик событй сработал');
Модуль позволяющий наследовать события - Util
- Создали переменную в которую присвоили модуль
util
. - Создадим конструктор.
- После этого можно использовать модуль
util
, чтобы все объекты созданные на основе этого конструктораCars
унаследовали обработчик событий.
util.inherits(ctor, superCtor);
Первым параметром указываем конструктор, который будет наследовать. Вторым - что конкретно наследовать.
util.inherits(Cars, events.EventEmitter);
Круглые скобки событию не надо.
Теперь мы можем создавать различные объекты, которые будут сразу наследовать обработчик событий.
let events = require('events');
let util = require('util');
let Cars = function(model){
this.model = model;
}
util.inherits(Cars, events.EventEmitter);
let bmv = new Cars('BMW');
let audi = new Cars('Audi');
let volvo = new Cars('Volvo');
На самом деле util.inherits просто позволяет наследовать прототипы от одного конструктора к другому (не только конструктор событий).
Посмотрим на практике:
- Создадим массив
cars, в который пометим все объекты, которые мы создали. - Теперь ы легко можем перебирать массив и объекты в нем.
- Вызываем события.
let cars = [bmv, audi, volvo];
cars.forEach(function(car){ car.on('speed', function(text){ console.log( `Auto ${car.model} speed is $(text}`)); }); });
bmw.emit('speed', '245.3 km');
Код полностью index.js
let events = require('events');
let util = require('util');
let Cars = function(model){
this.model = model;
}
util.inherits(Cars, events.EventEmitter);
let bmw = new Cars('BMW');
let audi = new Cars('Audi');
let volvo = new Cars('Volvo');
let cars = [bmw, audi, volvo];
cars.forEach(function(car){
car.on('speed', function(text){
console.log( 'Auto ' + car.model + ' speed is ' + text);
});
});
bmw.emit('speed', '245.3 km');
Теперь мы можем добавить различные авто и получить у каждого событие.
bmw.emit('speed', '245.3 km');
volvo.emit('speed', '198 km');
audi.emit('speed', '259 km');
Запись и чтение файлов
Синхронное чтение.
Создадим text.txt файл из которого будем что-то читать.Добавим в него текст:
Файл text.txt.
Ура! Вы меня прочитали!
You read this text.
При этом важно указать кодировку, иначе кириллицу отображать не будет.
Читать и записывать файлы поможет модуль
fs
. Вызываем его. fs.readFileSync(path, options);
Первый параметр - файл и путь к нему.
Второй - кодировка. В нашем случае -
'utf8'
Пока не прочитаем файл, код ниже не сработает.
Поместим весь этот текст в переменную
file_readed
let fs = require('fs');
let file_read = fs.readFileSync('text.txt', 'utf8');
console.log(file_read);
Синхронная запись.
Используем тот же модуль, но функциюfs.writeFileSync(path, data, options);
Первый параметр - название файла куда записывать. Если его нет, то он будет создан.Например
some_new_file.txt
Второй параметр - данные (текст). Можно указать просто имя переменной, в которой этот текст.
Например:
let message = 'Hello World - Привет Мир\n' + file_read;
let fs = require('fs');
let file_read = fs.readFileSync('text.txt', 'utf8');
let message = "Hello World - Привет Мир \r\n" + file_read;
fs.writeFileSync('some_new_file.txt', message);
Запустим
node index
Ничего не произойдет в консоли, но зато появится новый файл
some_new_file.txt
в нашей директории. Откроем и там:
Асинхронная.
Отличается тем, что код, который расположен ниже функции будет обрабатываться и не ждать завершения обработки функций чтения и записи.Чтение файлов асинхронное
Функция почти такая же. но есть третий параметр, который есть функция которая сработает тогда. когда файл будет прочтен.В этой функции первым параметром
err
- ошибка. Если не получится прочитать файл обратимся к ней, а вторым data
- непосредственно данные.
let fs = require('fs');
fs.readFile('text.txt', 'utf8', function(err, data){
console.log(data);
});
console.log('Test');
Вывод слова Test для наглядности асинхронности кода.
Запись файла асинхронная
Используется почти такая же конструкция, что и для чтения.Вторым параметром пойдет тот текст, который мы хотим записать. Можно его поместить в переменную, как и с синхронными функциями.
Третьим параметром функция в которой можно ничего не возвращать.
let fs = require('fs');
fs.readFile('text.txt', 'utf8', function(err, data){
console.log(data);
});
fs.writeFile('some.txt', 'Hello Programmers from me', function(err, data){});
console.log('Test');
Удаление файлов. Создание и удаление директории.
Удаление файлов.
Используется модульfs
let fs = require('fs');
fs.unlinkSync(path);
fs.unlink(path, callback);
Первый параметр название файла который удаляем, или путь.
Второй - Функция, которая будет срабатывать, после завершения удаления конкретного файла.
В нее можно ничего не передавать, но она нужна, чтобы не было ошибки.
let fs = require('fs');
fs.unlink('text1.txt', function(){
console.log('File text1 deleted');
});
Создание директории.
fs.mkdirSync(path, mode);
fs.mkdir(path, mode, callback);
Первый параметр - путь (название папки)
Второй - не обязательный при синхроне.
let fs = require('fs');
fs.mkdir('new-test', function(){
fs.writeFile('./new-test/some-new.txt', 'Hello world!', function(){
console.log('everything is done');
});
});
Удаление.
Удалить можно только пустую папку.fs.rmdirSync(path);
fs.rmdir(path, callback);
let fs = require('fs');
fs.unlink('./new-test/some-new.txt', function(){
fs.rmdir('./new-test', function(){
console.log('Удалили файл и папку');
});
});
Demikianlah Artikel Основы Node JS ( I ).
Sekianlah artikel Основы Node JS ( I ). kali ini, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sampai jumpa di postingan artikel lainnya.
Anda sekarang membaca artikel Основы Node JS ( I ). dengan alamat link https://dev-create.blogspot.com/2018/09/node-js-i.html