Записки для nodejs и ubuntu
Переместить все файлы - mv * /папка назначения
Разархивировать - unzip имя_файла
Получить файл по ссылке wget адрес_файла
Show & Tell
hello vonnie
Aqua Utopia|海の底で記憶を紡ぐ
Peter Solarz
Fai_Ryy
cherry valley forever
Jules of Nature

JVL
Not today Justin
let's talk about Bridgerton tea, my ask is open
YOU ARE THE REASON

Discoholic 🪩
Stranger Things
he wasn't even looking at me and he found me

Product Placement
Cosimo Galluzzi

izzy's playlists!
sheepfilms
🩵 avery cochrane 🩵
untitled
seen from Australia

seen from Australia

seen from Germany

seen from Australia

seen from Singapore

seen from United States
seen from United States
seen from Australia

seen from United States

seen from United States
seen from Italy

seen from Sweden
seen from Türkiye
seen from United States
seen from Singapore

seen from Canada
seen from United Kingdom
seen from Morocco
seen from Nepal

seen from Australia
@itsbredy-blog
Записки для nodejs и ubuntu
Переместить все файлы - mv * /папка назначения
Разархивировать - unzip имя_файла
Получить файл по ссылке wget адрес_файла
Livereload в nodejs - или автоматических перезапуск node
Вы наверное уже устали каждый раз перезапускать свой маленький nodejs app каждый раз после внесения изменений в файлы. Поэтому ставьте скорее nodemon
Это простой и легкий плагин, который перезапустит ваш app сразу после того как вы внесете изменение в файлы проекта.
npm install -g nodemon
Nodejs и MongoDB - чтение и запись данных
Введение
В этом уроке вы увидите как подключить Mongodb к Nodejs на VPS и сделать несолько простейших манипуляций.
Нам понадобятся следующие компоненты:
Ubuntu 12.04 x32 VPS
MongoDB v2.4.6
Node.js v0.10.20
The MongoDB Node.js driver
MongoDB
MongoDB это свободная документо-ориентированная (noSQL) база данных. Она удобна, проста и выдерживает большие нагрузки
Если вы первый раз используете MongoDB то я рекомендую прочитать мануалы к ней в первую очередь.
Давайте првоерим, что процесс mongodb запущен:
ps -ef | grep mongo
Вывод должен выглядеть как-то так:
mongodb 1307 1 0 02:27 ? 00:00:01 /usr/bin/mongod --config /etc/mongodb.conf
Если БД не запущена, то просто запустите ее следующей командой:
mongod
MongoDB поставляется вместе сконсольным клиентом, давайте запустим его:
mongo
Вы увидите вот такой вывод (появятся предупреждения - не обращайте на них внимание):
MongoDB shell version: 2.4.4 connecting to: test Server has startup warnings: Mon Oct 7 20:40:35.209 [initandlisten] Mon Oct 7 20:40:35.209 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 >
Запустите эту команду, чтобы увидеть список баз данных:
show dbs
А эта команда покажет вам выбранную базу данных:
db
Запустите следующую команду, чтобы выбрать БД test и показать коллекции, которые она содержит.
use test show collections
Это список команд, которые вы можете использовать в консольном клиенте. Вы можете получить весь список по команде "help":
show dbs #show database names show collections #show collections in current database show users # show users in current database show profile # show most recent system.profile entries with time >= 1ms show logs # show the accessible logger names show log [name] # prints out the last segment of log in memory, 'global' is default use <db_name> # set current database db.foo.find() # list objects in collection foo db.foo.find( { a : 1 } ) #list objects in foo where a == 1 it #result of the last line evaluated; use to further iterate exit #quit the mongo shell
Node.js
Nodejs это платформа построенная на базе движка V8 (Chrome) и JavaScript для быстрого и простого создания приложений.
Если nodejs у вас не установлен, то установите его и только после этого следуйте дальнейшим инструкциям.
Сейчас проверим запущен ли nodejs:
node -v
После этого вы увидите версию nodejs, при условии что nodejs запущен.
Драйвер для MongoDB в Node.js
Этот драйвер официально поддерживается Nodejs. Он написан на javascript и поддерживает нативный асинхронный Nodejs интерфейс для MongoDB.
Для установки драйвера вам понадобится npm - пакетный менеджер для nodejs, если у вас его нет - установите:
npm install mongodb
Соединяем MongoDB и делаем простейшие манипуляции с базой.
Сейчас настало время написать немного кода для вашего Nodejs приложения и подключить MongoDB, всего будет три операции - соединение, запись и чтение из БД.
Создайте app.js, это будет главный файл вашего приложения.
Окей, теперь добавим в него немного кода:
var MongoClient = require('mongodb').MongoClient , format = require('util').format; MongoClient.connect('mongodb://127.0.0.1:27017/test', function (err, db) { if (err) { throw err; } else { console.log("successfully connected to the database"); } db.close(); });
Запустите приложение следующей командой (напомню что вы должны находится в папке с приложением в этот момент):
node app.js
Вы увидите следующее: successfully connected to the database.
Теперь давайте добавим немного логики и создадим новую коллекцию “test_insert”:
var MongoClient = require('mongodb').MongoClient , format = require('util').format; MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) { if(err) throw err; var collection = db.collection('test_insert'); collection.insert({a:2}, function(err, docs) { collection.count(function(err, count) { console.log(format("count = %s", count)); db.close(); }); }); });
Добавим еще немного кода, этот блок будет проверять сделанные изменения в БД
var MongoClient = require('mongodb').MongoClient , format = require('util').format; MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) { if(err) throw err; var collection = db.collection('test_insert'); collection.insert({a:2}, function(err, docs) { collection.count(function(err, count) { console.log(format("count = %s", count)); }); }); // Locate all the entries using find collection.find().toArray(function(err, results) { console.dir(results); // Let's close the db db.close(); }); });
Поздравляю, вы только что сделали свое первое Nodejs + MongoDB приложение, которое пишет в бд и читает.
Быстрый старт на nodejs
Начал на днях эксперименты с nodejs и нашел удивительно удобную штуку.
Hackathon-starter - отличный проект для тех, кому припекло. Если вы совсем не разбираетесь в nodejs, то для начала установите виртуальную машину с linux на борту, установите nodejs и несколько плагинов, например Express, passport, посмотрите как работают контролеры, как создать сервер и как все это работает изнутри, а вот уже потом стоит посмотреть в сторону hackathon-starter. Так вы хотя бы будете примерно представлять, что там внутри и как оно крутится и вертится.
Если коротко, то это мега проект, который облегчит вам жизнь с самомго начала. Это тот самый принцип дзюдо - делайте больше, с меньшими усилиями. Это не идеальный код, это не панацея, нет. Это способ запустить приложения за 1-2 дня и посмотреть работает ли оно, стоит ли оно того, чтобы вкладывать в него больше. К тому же, код в этом проекте куда лучше того, что вы можете написать в начале своего обучения nodejs.
Большой проект на html/less/twitter bootstrap
Все бывает первый раз, вот так и у меня наступил момент, когда пришел заказ на верстку огромного интернет магазина. Надо сказать, что дизайнер просто молодец, сделал все замечательно, редко попадаются достойные макеты с которыми приятно работать, но разговор будет не об этом.
Разговор будет о том, как же сверстать макет так, чтобы потом была возможность его легко поддерживать.
Итак, инструменты
1) PhpStorm 7 (пробовал sublime и плагины - не смог настроить автодополнение less переменных, а в phpstorm работает из коробки, поэтому решил время не тратить)
2) Preproc для компиляции less в css (при сохранении)
3) Git + Bitbucket c приватным репозиторием для поддержки кода.
4) Бумага + карандаш
Существует много методологий для верстки больших проектов, это может быть многослойный css или BEM или что-нибудь ваше собственное, также существует много вариантов bem подхода, но об этом не в этом посте.
К сожалению ни один из вышеперечисленных методов я не смог воплотить на движке Twitter Bootstrap, возможно опыта c less пока маловато, но решил сделать иначе. Не знаю почему, но на рынке фриланса приходится расти быстрее, чем сидя в теплой уютной студии. Последние несколько лет верстал в css и все отлично, а вот с less были весьма интересные моменты.
Берем все макеты и печатаем, да на бумаге, и да в XXI веке. Потом развешиваете все 38 штук перед собой и внимательно смотрим.
На всех 38 макетах у вас будет не более 15-20 одинаковых элементов (возможно с разным контентом и отличия на этом кончатся), то есть вы можете сделать из всего этого подобие GUI и затем собирать страницы модульно с незначитальными изменениями (отступы между блоков например). Это будет удобно и тем, что в последствии любой верстальщик сможет собрать страницу уже из готовых элементов и не заморачиваться.
Каждый блок имеет свой less файл и свой php файл. Да, все верно, я верстаю в php/css и собираю верстку через <?php include() ?>, что позволяет вносить изменения в шапку быстрее, а не делать замены через поиск во всех файлах.
Каждое важное изменение коммитится и описывается что и зачем сделано.