
30.01.2011, 00:07
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Kolyaj, А что с серверной безопасностью (инъекции и пр.)?
|
|

30.01.2011, 00:20
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
А что с серверной безопасностью может быть? А что в PHP с серверной безопасностью? Как скрипт напишешь, так он и полетит.
|
|

30.01.2011, 00:36
|
 |
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от Kolyaj
|
А документация?
require
|
Да я то понял что можно require делать, но вопрос в другом. Если до createServer все компилируется 1 раз при запуске скрипта и исполняется, а все что внутри createServer компилируется при каждом запросе и исполняется или только 1 раз компилируется и потом просто исполняется, а если сделать в нем require? Он подгрузит и откомпилирует и больше потом не будет подгружать и снова компилировать ? Короче говоря, после запуска сервера, скрипт работает в накопительном режиме ? или все же происходит периодическая выгрузка неиспользуемого кода? Где можно почитать подробно о тонкостях техники работы ноды, всмысле подгрузки, компиляции, исполнения ?
Пример: я знаю что PHP при каждом запросе грузит скрипт-компилирует-исполняет-выдает-выгружает.
Как обстоит делао с техникой в ноде?
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Последний раз редактировалось PeaceCoder, 30.01.2011 в 00:39.
|
|

30.01.2011, 00:39
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
При запуске загружает-компилирует-выполняет. При запросе вызывается функция. Если в любой момент будет вызван require, соответствующий файл загрузится-скомпилируется-выполнится. Если этот файл уже загружен в другом месте, то выполнятся он больше не будет, просто ссылка на модуль будет возвращена.
|
|

30.01.2011, 00:39
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от Kolyaj
|
А что с серверной безопасностью может быть? А что в PHP с серверной безопасностью? Как скрипт напишешь, так он и полетит.
|
к примеру для php есть Безопасный режим и полно функций типа mysql_real_escape_string(), htmlspecialchars() как для безопасной работы с базой, полями ввода так и с файловой системой, а что есть в Node, чтобы защитить приложение от XSS- SQL-injections и пр.?
Последний раз редактировалось monolithed, 30.01.2011 в 00:46.
|
|

30.01.2011, 00:43
|
 |
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от Kolyaj
|
просто ссылка на модуль будет возвращена.
|
О! это меня и интересует. Супер система.
Теперь вопрос в другом: возможно ли переписывать стандартные функции типа require? например как в браузере alert и т.п.?
И еще. Если сделать типа LIB = require('./lib/lib.js'); то будет например видна LIB!==undefined в другом подгружаемом файле? и вобще каким образом можно увидеть уже существующие переменные в require файлах? Например как global в php
П.С. не охота тратить время на тесты. Охота узнать ключевые моменты языка, остальное вроде уже разобрался. библиотек куча написано, кстати как их подключать пока не разобрался (если я правильно понял, надо их скопировать и также просто сделать require)
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Последний раз редактировалось PeaceCoder, 30.01.2011 в 00:47.
|
|

30.01.2011, 00:54
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от monolithed
|
к примеру для php есть Безопасный режим
|
NodeJS не предназначен для shared хостингов.
Сообщение от monolithed
|
полно функций типа mysql_real_escape_string()
|
Это уже вопросы к модулям для работы с базами данных, а не к NodeJS. В MongoDB, например, никакая инъекция невозможна в принципе.
Сообщение от monolithed
|
htmlspecialchars()
|
А это вопросы к шаблонизатору, а не к NodeJS.
Сообщение от PeaceCoder
|
LIB = require('./lib/lib.js');
|
Расширение .js писать не надо. Все переменные внутри модуля остаются внутри него. Публичные свойства вытаскиваются присваиванием объекту export.
Есть ещё объект global, он один и тот же во всех файлах. Но мне, например, он ещё ни разу не пригодился.
|
|

30.01.2011, 01:02
|
 |
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от Kolyaj
|
Есть ещё объект global, он один и тот же во всех файлах.
|
Т.е. что бы например тот же LIB был виден везде, надо писать global.LIB = require(...) ? А обращаться к нему я подозреваю не надо через global.LIB global можно опускать (аналог window в клиенте LIB = ... <=> global.LIB = ... не?)?
Сообщение от Kolyaj
|
Есть ещё объект global, он один и тот же во всех файлах. Но мне, например, он ещё ни разу не пригодился
|
пригодится когда нода станет на уровень пхп/руби/питона и когда на ней будут писаться серьезные проекты
П.С. извини за наивные вопросы, ты опытен, тебе быстрее ответить чем мне прочитать кучу инфы что бы это узнать, а это важно для меня.
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Последний раз редактировалось PeaceCoder, 30.01.2011 в 01:05.
|
|

30.01.2011, 03:17
|
 |
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от monolithed
|
как по мне, то as больше под это заточен...
|
наверное, ты хотел сказать, что тебе он больше нравится, чем js. Так же как мне наоборот, без объективных аргументов
Сообщение от monolithed
|
лично меня пока не убеждают тезисы: "ну как же, тотальная асинхронность и возможность писать на js".
|
тотальная асинхронность да, не убеждает, а возможность писать на js - это мне нравится
Сообщение от dmitriymar
|
мож я не правильно правильно понял эту фразу-но насколько мне не изменяет память динамически можно подгрузить скрипт и без серверных сценариев-только клиентом js
|
клиентский и серверный js исполняются в разных средах, способ подключения файлов на клиенте не имеет смысла на сервере
Сообщение от Kolyaj
|
2. Скрипт на NodeJS запускается единожды и выполняется всё время работы сайта. В отличие от PHP, который запускается в момент запроса, после чего убивается. Поэтому весь код со всеми библиотеками парсится единожды при запуске, что не может не добавлять скорости.
|
во-первых, это в cgi так. А во-вторых, есть еще opcode cache и factcgi
Сообщение от Kolyaj
|
Особо хочется отметить распространённое заблуждение, что NodeJS это круто, потому что один и тот же язык на сервере и на клиенте.
|
ну, это актуально для тех кто не знает ни одного серверного языка, либо вообще ни одного языка не знает. В остальном - субъективно
итого, получается, node.js выигрывает в не очень стандартных задачах
Сообщение от PeaceCoder
|
Т.е. что бы например тот же LIB был виден везде, надо писать global.LIB = require(...) ? А обращаться к нему я подозреваю не надо через global.LIB global можно опускать (аналог window в клиенте LIB = ... <=> global.LIB = ... не?)?
|
Сообщение от PeaceCoder
|
пригодится когда нода станет на уровень пхп/руби/питона и когда на ней будут писаться серьезные проекты
|
ты случайно не пропустил фразу про объект export?
|
|

30.01.2011, 07:49
|
 |
Профессор
|
|
Регистрация: 25.05.2010
Сообщений: 511
|
|
Сообщение от PeaceCoder
|
кстати как их подключать пока не разобрался (если я правильно понял, надо их скопировать и также просто сделать require)
|
Ну смотря что, например если коннектор к БД у меня просто скопировать в папку нода и сделать require, а например при установке фреймворка скопировать, сделать внутри папки make, make install, а потом уже require, но там вообще к каждой библиотеке написана инструкция по установке, ничего сложного нет. Вообще удобно их устанавливать с github, например если шаблонизатор mu устанавливать, то зайти в папку ноды, в консоли команду:
git clone https://github.com/raycmorgan/Mu
и через несколько секунд уже модуль в папке лежит.
Последний раз редактировалось Vulkan, 30.01.2011 в 07:53.
|
|
|
|