Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 30.01.2011, 00:07
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Kolyaj, А что с серверной безопасностью (инъекции и пр.)?
Ответить с цитированием
  #22 (permalink)  
Старый 30.01.2011, 00:20
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А что с серверной безопасностью может быть? А что в PHP с серверной безопасностью? Как скрипт напишешь, так он и полетит.
Ответить с цитированием
  #23 (permalink)  
Старый 30.01.2011, 00:36
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 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.
Ответить с цитированием
  #24 (permalink)  
Старый 30.01.2011, 00:39
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

При запуске загружает-компилирует-выполняет. При запросе вызывается функция. Если в любой момент будет вызван require, соответствующий файл загрузится-скомпилируется-выполнится. Если этот файл уже загружен в другом месте, то выполнятся он больше не будет, просто ссылка на модуль будет возвращена.
Ответить с цитированием
  #25 (permalink)  
Старый 30.01.2011, 00:39
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Kolyaj
А что с серверной безопасностью может быть? А что в PHP с серверной безопасностью? Как скрипт напишешь, так он и полетит.
к примеру для php есть Безопасный режим и полно функций типа mysql_real_escape_string(), htmlspecialchars() как для безопасной работы с базой, полями ввода так и с файловой системой, а что есть в Node, чтобы защитить приложение от XSS- SQL-injections и пр.?

Последний раз редактировалось monolithed, 30.01.2011 в 00:46.
Ответить с цитированием
  #26 (permalink)  
Старый 30.01.2011, 00:43
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 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.
Ответить с цитированием
  #27 (permalink)  
Старый 30.01.2011, 00:54
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 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, он один и тот же во всех файлах. Но мне, например, он ещё ни разу не пригодился.
Ответить с цитированием
  #28 (permalink)  
Старый 30.01.2011, 01:02
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 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.
Ответить с цитированием
  #29 (permalink)  
Старый 30.01.2011, 03:17
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 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 (permalink)  
Старый 30.01.2011, 07:49
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 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.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по replace. Как заменить все точки в строке? Pluto Общие вопросы Javascript 14 21.04.2017 12:32
Comet: NodeJS - с чего начать разработку? Vulkan AJAX и COMET 13 27.11.2010 19:25
Как сделать закладку ВСЕ в виджете Tabs Marat jQuery 0 09.06.2010 16:26
не могу открыжить все чекбоксы нажатием одного nenastiy Events/DOM/Window 11 23.05.2010 17:50
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37