/ / expressjs та angularjs - проблема маршрутизації - angularjs, node.js, mongodb, express

Проблема маршрутизації expressjs та angularjs - angularjs, node.js, mongodb, express

Я почав будувати свій власний, і у мене є проблема, яку я майже цілий день намагався виправити.

В основному, я використовую кутовий $ ресурс для зв'язку зі своїм API.

Всі мої маршрути (шаблони нефриту) працюють і відображаються належним чином, але ось проблема.

На даний момент я будую свою систему блогів, де ядо цього часу створили простий CRUD. Я додаю повідомлення до свого блогу через форму, і я можу отримати доступ до кожного повідомлення за його ідентифікатором (використовуючи mongodb та mongoose), тому я просто натискаю на заголовок і відкривається окрема сторінка для мого повідомлення.

Єдина проблема, з якою я стикаюся, це коли я оновлюю сторінку /: id.

Тоді мій стиль за замовчуванням втрачається, і я взамін отримую лише об’єкт. (мій об'єкт mongoDB).

Ось деякі з коду:

Метод отримання ExpressJS:

module.exports.getSinglePost = function(req,res) {
Posts.findById(req.params.id, function(err, data) {
if (err) {
res.send(err); }
else {
res.json(data)
}
})

Кутовий маршрут JS

.when("/bblog/posts/:id", {
templateUrl: "views/post",
controller: "singlePostController"
})

Експрес-маршрути JS

router.route("/bblog/posts/:id") // get single id
.get(CRUD.getSinglePost)
.put(CRUD.updatePost)
.delete(CRUD.DeletePost)

router.route("/views/*")
.get(function(req, res) {
res.render(req.params["0"]);
});

router.route("*")
.get(function(req, res) {
res.render("index");
});

Отже, для мене зараз все працює нормально, поки я не оновлюю сторінку params /: id (params), тоді він просто друкує весь об'єкт на порожній білій сторінці (коли я, наприклад, оновлюю localhost:3000/bblog/posts/54641972b7557ecb6e637aa6, що є одним із дописів у мене)

приклад:

{
"_id":"54641972b7557ecb6e637aa6",
"content":"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry"s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishin",
n"title": "orem Ipsum is simpl","title":"orem Ipsum is simpl",
"__v":0
}

HINT Коли я ставлю цей маршрут нижче catch all route (*), я можу оновити сторінку, але проблема в тому, що я не отримую json-елемента у відповідь довше, ніж html-сторінка без мого об'єкта і т.д.

router.route("/bblog/posts/:id") // get single id
.get(CRUD.getSinglePost)
.put(CRUD.updatePost)
.delete(CRUD.DeletePost)

Як завжди, велике спасибі заздалегідь, і я сподіваюся, що ваша дивовижність може допомогти мені вирішити цю дивну проблему :). Ура

Відповіді:

0 для відповіді № 1

Так само, як користувач:Ірт заявив, що єдине, що мені потрібно було зробити, це змінити шлях до ресурсу та expressJS-маршрут на щось інше. Це працює зараз, але як би там не було, я зараз не маю поняття. Здається, це один із тих днів, коли ти кажеш: "О, мій код не працює, я не знаю, чому, мій код працює, я не знаю, чому".

Велике спасибі користувачеві irth. Не знаю, чому ваша відповідь не відображається, щоб я міг надати вам кредити тощо.