Могу ли я использовать зеркало Node.js в качестве запасного варианта, когда JavaScript не поддерживается? - PullRequest
3 голосов
/ 24 декабря 2011

Основной вопрос

Возможно ли вернуться к серверной реализации Node.js существующего клиентского сайта, насыщенного JavaScript. Специально для пользователей, у которых нет JavaScript (или, возможно, если браузер клиента не соответствует определенным требованиям к производительности)?

Мне действительно нужна архитектура, которая буквально интерпретирует слайд 8 этой презентации .

Вместо того, чтобы усы / основа формировали структуры данных и создавали представления на стороне клиента, вместо этого это делалось бы в Node, и полностью сформированный HTML мог бы быть возвращен.

Фон

Я написал приложение, которое построено на стеке jQuery, Underscore, Backbone и Mustache (выполняющих вызовы RESTful API для веб-службы для получения данных).

Это все очень хорошо работает с включенным JavaScript в браузере, но я еще не написал реализацию на стороне сервера как запасной вариант.

Конечно, я мог бы по существу «переписать все» в C # .NET / Python / Ruby / и т. Д., Но это кажется очень плохим решением, если учесть количество дублирования и добавленное обслуживание, когда есть полнофункциональная версия приложения доступна на JavaScript.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2011

Похоже, что это, вероятно, то, что мы увидим больше по мере продвижения вперед в мире серверной JS.

Я мог бы сам написать что-нибудь, однако, как отмечает комментатор (на OP) juandopazo , это возможно уже с YUI3.

Дуглас Крокфорд упоминает именно то, о чем я (и возможности YUI), в этом видео на 'Serverideness' - см. 03: 45.

0 голосов
/ 25 декабря 2011

Вы можете сделать это.Еще проще использовать что-то вроде express.js: http://expressjs.com/

Например, в Express.js есть функция res.render (), которая будет отображать шаблон для вас (в широком спектре шаблонов).языки).

Функциональность вашего клиентского приложения должна быть переписана для работы без js (понятно).Но вы даже можете динамически генерировать теги привязки и передавать их как переменные в ваши шаблоны на сервере.

Пример ответа на what.com/test, который отображает шаблон index.jade с переменной title, установленной в «Мой сайт»:

app.get('/test', function(req, res){
    res.render('index.jade', { title: 'My Site' });
});

Что касается повторного использования всего вашего магистрального приложения вСервер, я думаю, это возможно с помощью JSDOM и переписать тонну кода.Скорее всего, более выгодно просто переписать ваше приложение в другом стиле, используя запросы и шаблоны.

...