2013-04-14 5 views
0

Я работаю над проектом, который позволяет пользователям контролировать потребление энергии. Главная страница панели мониторинга - это веб-приложение, которое довольно аккуратно и широко использует javascript и ajax. Сервер в настоящее время запускает apache и использует php; однако я планирую установить node.js и обновить сценарии на стороне сервера, чтобы поддерживать websockets (и мне также нравится идея использования javascript на сервере и на стороне клиента).Выполнение конкретной страницы Javascript в node.js

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

Есть ли простой способ запускать javascript на страницах сайта на страницах сайта так же, как с PHP? Я столкнулся с шаблонами (например, с помощью усов), но я не понимаю, можно ли запускать определенные модули javascript на сервере, когда будет загружен конкретный файл.

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

ответ

2

Вы должны изучить веб-рамки для Node.js, которые помогут вам в этом. Мое избранное: express.

Экспресс позволит вам сопоставить «маршрут» с обработчиком, и этот обработчик может быть в любом файле, который вы хотите. НАПРИМЕР,

app.get('/energy/page-x', require('./routes/page-x-handler'));

Где ./routes/page-x-handler.js это что-то вроде:

module.exports = function (req, res, next) { 
    res.render('template-name'); 
} 
+0

отлично, спасибо большое –

2

Если вы используете рамки как Express вы можете «перехватывают» (или «путь», как это называется) запросы на конкретные URL, и стороны запуска сервера JS, чтобы справиться с этим URL (в том числе, в конце обработки, визуализации и вернуть шаблон).

Одно из отличий от PHP заключается в том, что PHP часто смешивает шаблоны и код в один файл, тогда как с узлом эти два обычно разделяются (так что у вас есть четкое разделение между кодом и макетом).