2014-09-15 10 views
0

Итак, я сначала начал .toString 'несколько функций проверки, так как я мог использовать их как на стороне сервера, так и на стороне клиента (удивительно!). Поскольку я был как раз около .toString() функцией, которая используется только на стороне клиента (но должна динамически передаваться через ajax), я пересматривал этот подход. Для чего это стоит прекрасно работать в текущей настройке, ноНедостатки функции .toStringing node.js на стороне сервера

  • .toString() Дорогая функция для запуска?
  • Есть ли ситуации в V9, где .toString() вернет что-то еще, кроме исходного кода?
  • Есть ли какие-либо другие опасности, которые я должен принять во внимание?

Единственное преимущество в этом случае состоит в том, что я могу сгруппировать некоторые связанные функции аккуратно вместе в одном классе/файле, но как в этом случае, так и в случае проверки также можно разделить его по отдельности. js, который я мог бы require в узле и обслуживать клиентскую сторону непосредственно для использования клиентом.

+1

Угадайте, я не совсем понимаю, почему вам нужно toString их использовать как на клиенте, так и на сервере. –

+0

@KevinB: Если у вас есть класс, в котором функция '.validate' должна выполняться как на стороне клиента, так и на стороне сервера, но' .save' должен быть доступен только на стороне сервера, вам необходимо разделить файл на два, или вы можете использовать '.toString()'. Если есть другое решение, пожалуйста, скажите мне, но единственный другой подход, о котором я могу думать, - это буквально прочитать файл и вырезать функцию. –

+0

Я бы разделил его на две части. Часть подтверждения не должна включать функцию сохранения, если вы хотите использовать ее в обоих местах. –

ответ

0

Существует огромный недостаток использования toString, вы не получаете внешних контекстов функции.

Что-то вроде этого не будет работать toStringed:

var validator = require('validator'); 

exports.validateEmail = function(email) { 
    return validator.isEmail(email) && ~email.indexOf('mydomain'); 
}; 

инструменты, такие как browserify может скомпилировать на стороне сервера узла работать на клиенте с помощью одного файла без необходимости делать какие-либо дополнительные работы.

Смежные вопросы