Javascript-форум (https://javascript.ru/forum/)
-   Сайт Javascript.ru (https://javascript.ru/forum/site/)
-   -   NodeJS еще раз просьба добавить раздел (https://javascript.ru/forum/site/15637-nodejs-eshhe-raz-prosba-dobavit-razdel.html)

mycoding 07.03.2011 12:48

NodeJS еще раз просьба добавить раздел
 
Не люблю дублировать темы, но пожалуйста давайте добавим раздел
NodeJS.

Если NodeJS дает такую мощную производительность, да еще и писать код надо на javascript, то раздел такой просто обязан быть на этом сайте.

Это будущее, и тем по NodeJS должно быть больше и больше в дальнейшем.

Sweet 07.03.2011 12:53

Ну нету ж тем по NodeJS! Вот если пойдут, то можно будет и раздел создавать, а пока, если что, есть раздел "Серверные языки и технологии", куда NodeJS подходит по всем параметрам:)

Vulkan 07.03.2011 13:23

И ещё у NodeJS есть русскоязычное сообщество где можно найти решения многих проблем и ответы на уже возникавшие вопросы.

mycoding 07.03.2011 20:18

Сегодня сижу весь день изучаю NodeJS.
Я больше не хочу на PHP кодить:)

До чего классная штука.

У меня возникло несколько вопросов, как только появится раздел то туда перенесу.

1 - Можно ли как то nodeJS на денвер установить. Звучит глупо, но все таки.
2 - Как его на виртуальном сервере установить.
3 - Как установить на windows curl, не получается пока.
4 - Как работать с MySQL

Я постораюсь сам найти ответы на эти вопросы, но если кто знает, буду очень признателен за ответ.

Вообще одно удовольствие кодить на NodeJS.

Kolyaj 07.03.2011 21:50

Цитата:

Сообщение от mycoding
1 - Можно ли как то nodeJS на денвер установить. Звучит глупо, но все таки.

Нет. А зачем? Что вы хотите увидеть в результате?

Цитата:

Сообщение от mycoding
2 - Как его на виртуальном сервере установить.

Никак.

Цитата:

Сообщение от mycoding
3 - Как установить на windows curl, не получается пока.

А зачем он в NodeJS?

Цитата:

Сообщение от mycoding
4 - Как работать с MySQL

https://github.com/joyent/node/wiki/modules

mycoding 07.03.2011 22:18

Дело обстоит вот как.
1 -
У меня Windows XP.
Поставил версию nodeJS для виндойс, но там есть только 2.3 версия.
А уже вышла 4-ая версия.

2 - curl нужен для тестирования.

3 - Мне просто нужен рабочий nodeJS, я как понял ставиться он на выделенном сервере.

4 - Одним словом хостинг нужен.
Я помню Вы говорили Kolya, что есть один хороший, но мне надо именно на моем хосте. А тогда придется покупать виртульный выделенный сервер.

5 - По поводу MySQL не понял, там огромное количество файлов.
Что брать, у меня то на компьюторе стоит денвер и надо использовать его mysql.

Что я хочу на данный момент.
Каким то образом тестировать у себя на компьюторе проект и
выкладывать в сети.

Kolyaj 07.03.2011 22:39

Цитата:

Сообщение от mycoding
У меня Windows XP.
Поставил версию nodeJS для виндойс, но там есть только 2.3 версия.
А уже вышла 4-ая версия.

http://node-js.prcn.co.cc/

Цитата:

Сообщение от mycoding
2 - curl нужен для тестирования.

Для тестирования чего? Где вы его будете использовать? В NodeJS есть свой HTTP-клиент.

Цитата:

Сообщение от mycoding
Я помню Вы говорили Kolya, что есть один хороший, но мне надо именно на моем хосте. А тогда придется покупать виртульный выделенный сервер.

Хостинги я никогда не хвалил и не советовал. Я как то говорил, что я плачу за него 150 рублей в месяц и мне его пока хватает для ноды.
Не понял, что вы имеете в виду под "моим хостом".

Цитата:

Сообщение от mycoding
5 - По поводу MySQL не понял, там огромное количество файлов.
Что брать, у меня то на компьюторе стоит денвер и надо использовать его mysql.

Там модули для NodeJS. Среди них есть модули для работы с MySQL. MySQL в денвере точно такой же, как и везде, даже висит на стандартном порту.

monolithed 07.03.2011 22:45

Я на FreeBSD поставил очень легко из портов, только на Win7 какие-то сетевые замуты, немогу сетевой диск подключить через самбу. Думаю опять ставить Cygwin - там проблем вообще нет с этим....

mycoding 07.03.2011 23:28

А что думаете по поводу expressjs.com
Я как понял это самый лучший framework для nodejs.

Но как его подключить никак не пойму.

1 - А как буде происходить например загрузка главной страницы.
index.js ?

2 - А если мне надо совместить с php.
Это можно?

3 - По поводу денвера. Т.е. можно использовать mysql денвера.
Просто я года два назад пробовал работать с mysql денвера и работала она
только в каталоге денвера.

Kolyaj 07.03.2011 23:32

Цитата:

Сообщение от mycoding
А что думаете по поводу expressjs.com

Я не использую.

mycoding 07.03.2011 23:54

Попробовал версию 4.2.
Работает медленней чем 2.3
Наверное дело в том, что дополнительные либы использует.
Где то в 1.5-3 раза медленней.
Жалко.

Vulkan 08.03.2011 07:30

Цитата:

Сообщение от mycoding (Сообщение 95488)
А что думаете по поводу expressjs.com
Я как понял это самый лучший framework для nodejs.

Но как его подключить никак не пойму.

А как буде происходить например загрузка главной страницы.
index.js ?

Да, фреймворк отличный, поддерживает работу с кукисами и сессиями, подключаете так:
var app = require('express').createServer();

Потом делаете роутинг, например:
app.get('/index', function(req, res){
    res.send('index');
});

Если пользователь перейдёт по адресу /index ему выдаст страницу с текстом index. Подробнее про роутинг и всё остальное тут.
Думаю без шаблонизатора не обойдётесь, я использую EJS и Вам советую, он поддерживает логику в шаблонах и очень прост в установке и использовании, допустим предыдущий пример можно переделать так:
app.get('/index', function(req, res){
    res.send(EJS.render(FS.readFileSync('/node/templates/home.ejs', 'utf8'), {}));
});

Теперь пользователю будет выдан шаблон home.ejs, то есть нормальная страничка. Подключается EJS как и все остальные модули:
var EJS = require('/node/ejs')
.

mycoding 08.03.2011 09:36

Kolya, а может сказать где Вы купили VDS?

Я посмотрел еще раз ту, тему в который Вы говорили про nodeJS.
Там не указано, где Вы арендуете VDS.
Я понимаю, что это без разницы где, но я хочу арендовать там же где Вы.

Kolyaj 08.03.2011 10:02

mycoding,
кликайте по нику, чтобы ошибок не было при обращении.

Ну зачем вам это? Скажу я вам, где я хостинг покупаю, он вас чем-то не устроит, осадочек останется :)

Вобщем, один из этих :)

mycoding 08.03.2011 10:19

Kolyaj,
я сейчас у знал у timeweb у них VPS стоит 350 в месяц.
Можете пожалуйста глянуть вот эту страницу http://timeweb.ru/services/vps/vps-order/
И сказать, что из предлагаемого надо выбрать.

Там разные операционные системы, комплект ПО.
Пожалуйста скажите, что лучше выбрать.

По поводу ника, извините, я реально не знал, что есть такая фитча :)

mycoding 08.03.2011 11:19

Я правильно понимаю следующее.
Предположим у нас есть проект, который работает сейчас на php
и все запросы кроме главной сраницы и подключаемых js и css файлов
это ajax запросы для получения каких либо данных.

Серверный код php выглядит для всех запросов приблизительно одинаково.
<?php
// Config для полключения к б.д. и само подключение
// Класс проверка сессии пользователя
// Класс какого либо дейсвия
// Класс проверки имеет ли пользователь права на выполнение скрипта

// Проверка сессии
// Проверка имеет ли право выполнять скрипт
// Выполнение действия и выдача результата в виде json
?>


Как такой проект сделать на nodeJS.

Пусть у нас есть два случая первый проект на 10000 пользователей второй на 10 000 000 пользователей.

На сколько я понял nodeJS, может избавить от необходимости каждый раз делать запрос к базе данных для проверки сессии и выполнения самой проверки.

Я правильно понял?

Я не имею ввиду, что проект это чат. Любой проект.
Меня не интерисует шаблонизаторы и прочее, только ответы в виде json строк.

Сам скрипт делает сервер и ставит его на определенный порт.

Я вот, что не пойму, пусть нам в проекте надо обращаться к различным
запросам сервера. Т.е. один не подходит. А что тогда делать, ведь он
сервер будет на одно порту, т.е. для разных запросов надо делать несколько серверов. А следовательно каждый раз делать проверку сессии?

И может ли node удерживать до 10 000 000 запросов?
10 000 я понял он держит хорошо.

Kolyaj 08.03.2011 11:27

Цитата:

Сообщение от mycoding
На сколько я понял nodeJS, может избавить от необходимости каждый раз делать запрос к базе данных для проверки сессии и выполнения самой проверки.

Можно хранить сессии в памяти.

Цитата:

Сообщение от mycoding
Я вот, что не пойму, пусть нам в проекте надо обращаться к различным
запросам сервера. Т.е. один не подходит. А что тогда делать, ведь он
сервер будет на одно порту, т.е. для разных запросов надо делать несколько серверов. А следовательно каждый раз делать проверку сессии?

Это какой-то бессмысленный набор слов. И у сервера нет запросов.

Цитата:

Сообщение от mycoding
И может ли node удерживать до 10 000 000 запросов?

Я не верю, что вам щас надо, чтобы сервер мог держать 10 000 000 одновременных соединений :)
Удержать-то он удержит (только IP-шников несколько надо будет серверу), вопрос в том, сколько он будет отвечать на каждый, а это уже от самого скрипта зависит.

mycoding 08.03.2011 11:37

По поводу набора слов, я просто не знаю как сформулировать правильно.
Предположим у нас web 2.0-3.0 проект.

Запросы по следующим адресам.
site.ru/request/user/get-private-info.php
site.ru/request/user/get-money-balance.php
......
......
......


По примерам я понял, что делается один скрипт пусть
answer.js и ставится на порт 8080.

Т.е. в этом answer.js какое то действие, пускай это получение информации о балансе пользователя.
Но, если нам надо получить полную информию о параметрах пользователя, то это уже другой скрит, и получается надо еще один
сервер вешать на другой порт?

Не очень объяснил, но надеюсь Вы меня поняли.

Kolyaj 08.03.2011 12:04

Один скрипт на все запросы. Он смотрит на url и в зависимости от него делает то или иное действие.

mycoding 08.03.2011 13:25

Цитата:

Сообщение от Kolyaj (Сообщение 95517)
Один скрипт на все запросы. Он смотрит на url и в зависимости от него делает то или иное действие.

Здорово. :)

А как его подключать?
Т.е. пришла строка, дальше require или как?

mycoding 08.03.2011 14:20

Kolyaj, а можно Вас посросить снять скрикаст, как Вы ставите
virtualBOX с ubunt-ой и дальше все что нужно.

Я это сделал, но не уверен, что верно.
Глюки какие то.

Вы писали, что надо отключить какие то параметры.
Только вот как.
И как вообще в нем работать.

Если, конечно это Вас не затруднит.

mycoding 08.03.2011 14:35

Из за virtualBOX у меня перестал работать firebug для сети.
Вообще не отображает запросы с моими проектами на php в денвере.

И skype перестал работать.

mycoding 08.03.2011 21:06

На сколько я понял идеальная база данных для nodeJS - это
mongoDB.

Вот почему:
mongoDB - хранит данные в виде json строк.

Kolyaj 08.03.2011 21:08

Цитата:

Сообщение от mycoding
mongoDB - хранит данные в виде json строк.

CouchDB, например, тоже.

mycoding 08.03.2011 21:36

Kolyaj,
никак не получается с virtualBOX разобраться как и что.

Вы не могли бы очень подробно написать, пожалуйста.

Kolyaj 08.03.2011 21:40

Используйте win-версию, её в большинстве случаев хватает.

mycoding 08.03.2011 21:45

А как на win версии делать тестовые сайты?
Где вообще размещать сам проект?

Хочется, чтобы можно было например в браузере вот по такому адресу запускать.
http://node/

Т.е., что бы был реально работающий локальный вариант для написания сайтов.

mycoding 08.03.2011 22:34

Насколько я понял делается это так.

Пока рассматриваю не virtualBOX а vmWare
1. нужно скачать VMware Player www.vmware.com/products/player/ (нужно зарегится
2. зайти на сайт ubuntu или что там нужно, скачать образ и установить ОС
3. настроить сетевые интерфейсы, установить нужные пакеты и установить самбу для общения с файловой системой unix в винде

Но это всё очень сложно.
Кроме того не получается найти образ ubuntu на сайте.

В VirtualBOX тоже запрашивает адрес операционной системы.

mycoding 09.03.2011 07:44

Я купил VPS на год, что с ним дальше делать.
Извините за поток нубских вопросов.

Но понятия не имею как с VPS работать да и вообще настроить nodeJS.

Kolyaj 09.03.2011 08:35

Цитата:

Сообщение от mycoding
что с ним дальше делать.

Учиться работать с линуксом через консоль. Это уже никак не JavaScript.

mycoding 09.03.2011 08:56

Я несколько лет назад даже делал проги на bash.
И под Windows активно пользовался консолью.

Но это ладно.

Вот что я делаю и какие ошибки выдает

Цитата:

wget http://nodejs.org/dist/node-v0.4.2.tar.gz
tar -xvf node-v0.4.2.tar.gz
cd node*
./configure
После ./configure
Выдает вот это

Цитата:


Checking for program g++ or c++ : g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for program gcc or cc : gcc
Checking for gcc : ok
Checking for library dl : yes
Checking for openssl : not found
Checking for function SSL_library_init : yes
Checking for header openssl/crypto.h : yes
Checking for library util : yes
Checking for library rt : yes
--- libeio ---
Checking for library pthread : yes
Checking for function pthread_create : yes
Checking for function pthread_atfork : yes
Checking for futimes(2) : yes
Checking for readahead(2) : yes
Checking for fdatasync(2) : yes
Checking for pread(2) and pwrite(2) : yes
Checking for sendfile(2) : yes
Checking for sync_file_range(2) : yes
--- libev ---
Checking for header sys/inotify.h : yes
Checking for function inotify_init : yes
Checking for header sys/epoll.h : yes
Checking for function epoll_ctl : yes
Checking for header port.h : not found
Checking for header poll.h : yes
Checking for function poll : yes
Checking for header sys/event.h : not found
Checking for header sys/queue.h : yes
Checking for function kqueue : not found
Checking for header sys/select.h : yes
Checking for function select : yes
Checking for header sys/eventfd.h : yes
Checking for function eventfd : yes
Checking for SYS_clock_gettime : yes
Checking for library rt : yes
Checking for function clock_gettime : yes
Checking for function nanosleep : yes
Checking for function ceil : yes
Checking for fdatasync(2) with c++ : yes
Я как понял чего то нет.
Т.е. надо еще поставить какие то пакеты ubuntu?

Дальше делаю
Цитата:

make
Что то делает а потом выдает ошибку
Цитата:

virtual memory exhausted: Cannot allocate memory
scons: *** [obj/release/api.o] Error 1
scons: building terminated because of errors.
Waf: Leaving directory `/root/node-v0.4.2/build'
Build failed: -> task failed (err #2):
{task: libv8.a SConstruct -> libv8.a}
Пробовал поgooglить, предлагают вот это
Цитата:

export CC=gcc4
export CXX=g++4
Но после этого вообще перестало компилить, поэтому вернул назад параметры.

Kolyaj 09.03.2011 08:58

Цитата:

Сообщение от mycoding
Я как понял чего то нет.

Да нормально вроде всё.

Цитата:

Сообщение от mycoding
Что то делает а потом выдает ошибку

Ну так памяти не хватает. Ставьте из портов/пакетов. Система какая?

mycoding 09.03.2011 09:05

система ubuntu.
А как это из портов?
Я всё делал как написано на habrhabr и других ресурсах.

А по поводу ./configure меня смущают вот эти строки.


Цитата:

Checking for header port.h : not found
Checking for header sys/event.h : not found
Checking for function kqueue : not found

Kolyaj 09.03.2011 09:08

Цитата:

Сообщение от mycoding
система ubuntu.

https://github.com/joyent/node/wiki/...ackage-manager

Цитата:

Сообщение от mycoding
А как это из портов?

Это про FreeBSD

mycoding 09.03.2011 09:16

Пробую поставить по ссылке которыу Вы дали для ubuntu.
Вот что отвечает

Цитата:

sudo add-apt-repository ppa:jerome-etienne/neoip
sudo: add-apt-repository: command not found

Илья Кантор 09.03.2011 10:58

Поставьте себе Debian 6 в виртуалку.

Она там и в пакетах есть. Сможете поставить из пакета, оно депенды подтянет, а потом и руками последнюю скомпиляете. Для этого build-essentials надо правда, ну мб еще чего. Туториалов в сети полно как ноду забилдить.

От себя добавлю - с версии 0.1 по текущую нода по дебом билдится отлично.

Kolyaj 09.03.2011 11:17

Цитата:

Сообщение от Илья Кантор
а потом и руками последнюю скомпиляете.

На дешёвом VDS, скорее всего, памяти не хватит.

B~Vladi 09.03.2011 12:00

Цитата:

Сообщение от Илья Кантор
с версии 0.1 по текущую нода по дебом билдится отлично

Я даже скажу так - это самое простое, что мне приходилось ставить на Debian.

У меня вот тоже есть нубский вопрос.
Какое расширение принято использовать? .js? .njs? Если .js, то в nginx по расширению уже не сделаешь проксирование на ноду, как для php:
Цитата:

location ~ \.php$ {
proxy_pass http://domain.ru:8080;
proxy_set_header Host $host;
index index.php;
}
Как вы предпочитаете отделять статику в nginx?

Вообще я, начитавшись всяких книжек, уже давно раскидываю статику по поддоменам (css, js, img). Но бывают разные случаи, например тот же /robots.txt, а описывать каждый раз это в конфиге nginx не хочется.

mycoding 09.03.2011 16:48

Эхехех, как же сложно его ставить, уже третий день пытаюсь нормально уставить локальную версию для тетирования и vps версию.

Очень сложно.

mycoding 09.03.2011 17:05

Kolyaj,
Вы говорили что у Вас VPS за 150 в месяц, а как вы на такой vps поставили nodeJS если для него как я понял нужна мощная оперативка для установки.


Часовой пояс GMT +3, время: 09:16.