12.10.2011, 23:10
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от Андрей Параничев
|
загрузка файлов на хост с клиента?
|
Ещё до этого не дошел.
Сообщение от Андрей Параничев
|
модули придется располагать на разных портах
|
Вот тут не понял, физически распологать?
Сообщение от Андрей Параничев
|
значит проблема роутинга у вас не решена вообще
|
Где про это почитать?
Сообщение от Андрей Параничев
|
Кстати, просто на всякий случай
|
Спасибо, буду иметь ввиду.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
12.10.2011, 23:42
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
B~Vladi,
У вас эти сервера запускаются на разных портах, а из nginx к ним прокси пасс с субдоменов. Т.е. фактически это максимум можно назвать виртуальными хостами. Но внутри сервера вы как выбираете, какой код будет запускаться, вот у меня например было что-то такое:
Framework({
"/upload/(\s+)": {
"json": function(id) {
return false;
},
"html": {
"get": function(id) {
this.error(404);
},
"post": function(id, postData) {
return true;
}
}
}
});
Ну это очень примерно.
|
|
13.10.2011, 00:22
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Так:
module.exports = function(request, response) {
var serviceName = request.url.match(/^\/([^/]+)/);
if (serviceName) { // URL состоит из: domain.ru/serviceName/serviceData[/./././]
serviceName = serviceName[1];
if (serviceName != 'index' && SERVICES.hasOwnProperty(serviceName)) {
SERVICES[serviceName](request, response);
} else { // Если запрос приходит на неизвестный сервис, вызываем код сервера ошибок
request.headers.error = 404;
LIB.server.error(request, response);
}
} else { // Если имя сервиса отсутствует, вызывается сервис index (главная)
SERVICES['index'](request, response);
}
};
module.exports.port = 8001;
// Инициализация сервисов. Так же оформенны в виде модулей.
LIB.fileSystem.readdir(CONFIG.path.services, function(err, files) {
var length = files.length;
while (length--) {
var serviceData = files[length].match(/^([^\.]+).js$/);
if (serviceData) {
SERVICES[serviceData[1]] = require(CONFIG.path.services + '/' + serviceData[0]);
}
}
});
Этого вполне достаточно.
А о каких проблемах роутинга речь?
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Последний раз редактировалось B~Vladi, 13.10.2011 в 01:19.
|
|
13.10.2011, 01:50
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от x-yuri
|
а оно запросы случайно не в одном потоке обрабатывает?
|
Сообщение от Magneto
|
Это что сарказм? В одном потоке, но если я не ошибаюсь то есть вебворкеры и возможность запуска несколько процессов по числу процессоров.
|
я в общем-то думал о том, что в случае multithreaded/multiprocess веб-сервера, один запрос не может приостановить весь веб-сервер. Не знаю, насколько это аргумент.
Сообщение от Kolyaj
|
В одном, в этом вся прелесть.
|
ну это с точки зрения, что не надо синхронизировать
Сообщение от B~Vladi
|
Вообще если честно я не понимаю, почему говорят что нода для этого плохо подходит.
|
а какие аргументы?
Сообщение от Андрей Параничев
|
Некрасивый он, и по внутреннему коду и по тому коду, что я должен под него писать
|
хм, неужели jquery красивый внутри?
Сообщение от Андрей Параничев
|
У меня такое ощущение, что его писали не рассчитывая, что на нем будут писать что-то большое.
|
он основан на sinatra. Его сегодня один человек назвал микрофреймворк. Не знаю точно, что это означает, но он определенно минималистичен. Писали его с расчетом быстрого создания приложений с минимальными усилиями. Т.е. sinatra даже называет себя не фреймворком, а DSL. Можно ли на нем писать что-то большое... не знаю, не пробовал.
Последний раз редактировалось x-yuri, 13.10.2011 в 01:54.
|
|
13.10.2011, 08:49
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от x-yuri
|
а какие аргументы?
|
Я точно не помню, сложилось такое впечатление.
Недавно на GDD с одним знакомым PHP-кодером состоялся примерно такой диалог:
Я: Я проект на ноде делаю.
Он: Нода же не для этого? Под неё можно только чаты писать.
Я: Почему?
Он: Ну там же асинхронный код, коллбеки везде?
Я: Ну и что?
Он: Ну как ты будешь писать сайт в асинхронном стиле? Это же сложно?
Я: Ну да, сложнее чем синхронный. Берёшь руками и пишешь. Главное шаблонизатор хороший иметь.
В общем он так и не согласился со мной и аргументов никаких конкретных не назвал. Мне и самому интересно, почему же он плохо подходит.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
13.10.2011, 11:55
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от B~Vladi
|
В общем он так и не согласился со мной и аргументов никаких конкретных не назвал. Мне и самому интересно, почему же он плохо подходит.
|
Потому что очень сложно PHP-шные мозги (без всякого негатива термин) перестроить на асинхронный JavaScript.
|
|
13.10.2011, 21:36
|
|
Профессор
|
|
Регистрация: 19.08.2011
Сообщений: 186
|
|
А как Вы относитесь к реляционным БД в mySql?
Или лучше NoSql?
|
|
13.10.2011, 22:16
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от systemiv
|
А как Вы относитесь к реляционным БД в mySql?
|
Глупость написал.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
13.10.2011, 22:37
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от systemiv
|
А как Вы относитесь к реляционным БД в mySql?
|
ты действильено думаешь, что nosql всегда лучше? Или mysql всегда лучше? Реляционные БД делают упор на целостность и доступность, а nosql-системы на устойчивости к разделению и доступности ( теорема САР)
|
|
13.10.2011, 22:47
|
|
Профессор
|
|
Регистрация: 19.08.2011
Сообщений: 186
|
|
Сори, я хотел написать в node
x-yuri, не всегда. Но в каких случаях, лучше использовать mySql или например MongoBD
Последний раз редактировалось systemiv, 13.10.2011 в 22:53.
|
|
|
|