2016-10-06 2 views
0

После курса angular2 я закончил со ссылкой на следующий фрагмент кода сервера backend node.js, когда я пытаюсь выполнить конкурсы с внешнего интерфейса:(угловое 2) конфигурирование путей node.js для возврата index.html с дополнительным JSON

router.get('/', function(req,res,next) { // actually /contests/ 
Contest.find() 
    .populate('user', 'firstName') 
    .exec(function(err, docs) { 
    if (err) { 
    return res.status(404).json({ 
    title: 'Error !', 
    error: err 
    }); 
    } 
    res.status(200).json({ 
    message: 'Success', 
    obj: docs 
    }); 
    }); 
}); 

Что хорошо работает, когда я достигаю его из своего приложения, но если я попытаюсь получить к нему доступ, просто набрав url: .../конкурсы/и нажав enter, я получаю только объекты JSON, отображаемые на странице , что я не намерен делать с обычным приложением.

Что я хочу сделать, это вернуть правильную страницу (= render index.html файл для всех страниц (angular2 SPA)), но также иметь некоторые данные JSON, прикрепленные к ответу, к которому я мог бы получить доступ в интерфейсе. Есть ли способ достичь этого? Что-то вроде:

res.render('index', {message: 'Success', obj: docs}); // Not working 

вместо того, чтобы просто

res.json({ ... }) 

Для маршрутов, которые не содержат GETs, которые возвращают JSON, все работает.

Я не понимаю, является ли фрагмент кода ошибкой архитектуры или я просто глуп, так как я не могу найти информацию об этом во время поиска в Интернете. Я относительно новичок в node.js.

Любая помощь, ввод или указатели будут оценены!

ответ

0

Я понимаю, что теперь нет необходимости обращаться к конкурсам. Я решил это, просто перенаправляя все такие GET на конечную точку API.