Заметки для начинающих по Node.JS
Разбить строку в Node.JS
1 2 3 4 5 6 |
var str="text1,text2,text3"; var arr = str.toString().split(","); //Получаем массив доступ к которому через индекс console.log(arr[1]);//Выведет - text1 |
Чтение и запись в файл в Node.JS
1 2 3 4 5 6 7 8 |
const fs = require('fs'); //Подключаем библиотеку var file = `${__dirname}`+'/myfile.txt'; var str = fs.readFileSync(file,'utf8'); //Читаем из файла var text_to_file = "Это пишем в файл"; fs.writeFileSync(file,text_to_file+str);//Запишем новый текст и добавим прочитанный из файла |
Как получить переменную GET в Node.JS
К примеру, мы формируем AJAX запрос к серверу на Node.JS, и нам нужно получить значение переменной.
Пример AJAX запроса:
1 2 3 4 5 6 7 8 9 10 11 12 |
$.ajax({ url: "http://ххx.хxх.xхх.xхх", method: 'get', data: { get_zapros: "Это для отправки", }, success: function (response) { console.log(response);//выведем ответ сервера } }); |
В этом примере у нас есть переменная – get_zapros, в которой содержится текст для отправки на сервер. Теперь наша задача, на сервере обработать переменную get_zapros, и получить ее содержимое.
1 2 3 4 5 6 7 8 9 10 11 12 |
const http = require('http'); const url = require('url'); http.createServer(function(req, res) { var url_get=url.parse(req.url, true); var query = url_get.query; console.log(query.get_zapros);//выводим значение переменной get_zapros res.end(1);//вернем ответ в виде значения true }).listen(8080); |
В этом примере, у нас показан работающий сервер на порту 8080, где есть принимающая сторона – переменная req, и ответ – переменная res
Как загрузить файл с удаленного сервера
Как вариант, есть неплохая библиотека, которая позволяет загружать любые типы файлов как с http, так и с https серверов
Установим axios, ссылка на проект
1 2 3 |
npm install axios |
В следующем коде загрузим файл с сервера
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
var axios = require('axios'); var fs = require('fs'); return axios.request({ responseType: 'arraybuffer', url: 'https://get.geo.opera.com/pub/opera/desktop/57.0.3098.102/win/Opera_57.0.3098.102_Setup_x64.exe', method: 'get', headers: { 'Content-Type': 'multipart/form-data', }, }).then((result) => { const outputFilename = `${__dirname}`+'/opera.exe'; fs.writeFileSync(outputFilename, result.data); return outputFilename; }); |
Здесь мы загружаем файл Opera_57.0.3098.102_Setup_x64.exe с сервера, и сохраняем его в opera.exe корневой директории проекта.
Как удалить все ссылки на странице, и например, заменить на тег <strong>
Для решения этого вопроса будем использовать JQuery.
Первое: отберем все ссылки на странице:
1 2 3 |
a=$('a');//Отбираем все ссылки |
Второе: обернем тегом <strong> все отобранные ссылки и произведем замену тега <a>:
1 2 3 4 5 6 7 |
a=$("a"); for(i=0;i<a.length;i++){ wrap=a.eq(i).wrap("<strong>").text();//Оборачиваем тег <а> тегом <strong> и помещаем в переменную содержимое ссылки a.eq(i).replaceWith(wrap); //Заменяем тег <a>, на содержимое переменной wrap } |
Как прочитать csv файл
К примеру, у нас есть csv файл (data.csv), состоящий из двух столбцов, где указаны имя и возраст.
1 2 3 4 5 |
name,year Yura,35 Lena,37 |
Прочитаем файл, данные занесем в массив, и выведим результат в консоль.
В начале установим пакет csv-parser
1 2 3 |
npm i -s csv-parser |
Теперь напишем следующий код
1 2 3 4 5 6 7 8 9 10 11 12 |
const csv = require('csv-parser'); const fs = require('fs'); const results = []; fs.createReadStream('data.csv') .pipe(csv()) .on('data', (data) => results.push(data)) .on('end', () => { console.log(results); }); |
Результат console.log()
[ { name: 'Yura', year: '35' }, { name: 'Lena', year: '37' } ]
Чтобы добраться до первой строки массива, то обращаемся к массиву через индекс, например, results[0], если нужно добраться к определенному значению столбца(name или year), то обращаемся через свойство: results[0].name
Продолжение следует…