Простые примеры кода на node.js
Взять с github
Запросить страницу и распарсить
Приминяются модули request и cheerio:
let request = require('request'); let cheerio = require('cheerio') var url = "https://yandex.ru/images/search?text=%D0%BE%D1%82%D0%BF%D1%83%D1%81%D0%BA&nl=1" request(url, function(error, response, body) { if (error) { console.error("Ошибка", error); return; } var $ = cheerio.load(body); var res = $(".serp-item__thumb"); // console.log(res); for (var i = 0, len = res.length; i < len; i++) { let s = res[i].attribs.src; console.log(s); } });
Загрузка нескольких изображений. Обработка окончания загрузки
Приминяются модули request и bluebird.
Bluebird применяется если ваша версия node не поддерживает Promise
// let Promise = require("bluebird"); let request = require("request"); let fs = require("fs"); let path = require("path"); let pathImg = 'download'; let imgList = [ 'http://www.banksy.co.uk/img/0116/pmbg_01-3.jpg', 'http://www.banksy.co.uk/img/indoorimg/flag.jpg', 'http://www.banksy.co.uk/img/indoorimg/media.jpg', 'http://www.banksy.co.uk/img/outdoorimg/mi_02.2_O.jpg', 'http://www.banksy.co.uk/img/outdoorimg/jobs_01-8.jpg' ]; let promiseArr = []; for (var i = 0, len = imgList.length; i < len; i++) { let uri = imgList[i]; let filename = pathImg + '/' + path.parse(uri).base; var promis = new Promise(function(resolve, reject) { request.head(uri, function(err, res, body) { if (res.statusCode == 200) { console.log(res.headers['content-type'], filename); request(uri).pipe(fs.createWriteStream(filename)).on('close', function(d) { resolve(); // Проблема }); } else { console.log(res.statusCode, filename); reject(); } }); }); promiseArr.push(promis); } fs.mkdir(pathImg, function(e) { Promise.all(promiseArr).then(function(d) { console.log('success download!'); // Если весь список скачался успешно }, function(err) { console.log('error'); }); });
Простейший http сервер
var http = require("http"); var url = require("url"); var fs = require("fs"); // настройки var settings = { content: __dirname + "/web/" }; var server = http.createServer(function(request, response) { console.log(request.method, request.url); var path = url.parse(request.url).pathname; var loadFile = (path == '/') ? 'index.html' : path fs.readFile(settings.content + loadFile, function(error, data) { if (error) { console.log("error: " + error); response.writeHead(404); response.write("404 - not found"); } else { response.writeHead(200, { "Content-Type": "text/html" }); response.write(data); } response.end(); }); }); server.listen(8080); console.log("Server is listening localhost:8080");
Для тестирования приложения (и перезапуска при изменение кода) можно воспользоватся supervisor.
npm install supervisor -g
supervisor app.js
Прочитать текстовый файл
let fs = require('fs'); let fileName = "package.json"; fs.readFile(fileName, "utf-8", function(err, data) { if (err) { if (err.code == 'ENOENT') { console.log("No such file or directory"); } else { console.log("error", err); } return; }; console.log(data); });
Создаем новый текстовый файл или перезаписывает существующий
let fs = require('fs'); let fileName = 'test.txt'; let data = 'Is test file'; fs.writeFile(fileName, data, function(err) { if (err) { console.log('error', err); return; } console.log('It\'s saved!'); });
Дописать в конец файла строку
let fs = require('fs'); let fileName = 'test.txt'; let data = 'data to append'; fs.appendFile(fileName, 'data to append', function(err) { if (err) { console.log('error', err); } else { console.log('ok'); } });
http://caolan.github.io/async/index.html