#javascript #rest #meteor
#javascript #rest #meteor
Вопрос:
Я приложение meteor, использующее пакет simple: rest для доступа к публикациям, работает очень хорошо!
Однако мне еще не удалось ПОЛУЧИТЬ публикацию, для которой требуется аргумент.
В документах ничего не говорится о публикациях с аргументами.
- Когда я вызываю GET URL без аргумента http://localhost:3000/publications/export /, Я получаю сообщение об ошибке (при проверке аргумента в моей публикации)
- Когда я вызываю get URL с прикрепленным аргументом: http://localhost:3000/publications/export/12345 / вместо этого загружается основное приложение (ну, с некоторыми неработающими ссылками на изображения)
- Когда я добавляю параметр URL в публикацию
Meteor.publish("export", function exportPublication(id) {...}, {
url: "export/:0",
})
это не помогает, я все еще получаю основное приложение.
Пример наhttps://github.com/stubailo/meteor-rest/blob/master/packages/rest/rest-tests.js предполагает, что использование параметра URL представляется правильным способом определения маршрута для публикации с аргументами.
Чего мне не хватает?
Ответ №1:
Я сам не использовал этот пакет, но я думаю, что вам нужно добавить параметр в функцию публикации, вот так:
Meteor.publish("export", function exportPublication(id) {...}, {
url: "export/:0",
})
и вы можете получить доступ id
к коду, который извлекает данные. Если вы обрабатываете его как число, вам может потребоваться его синтаксический анализ: parseInt(id, 10)
Также я бы использовал postman или curl для доступа к URL (похоже, вы используете браузер)
Комментарии:
1. Верно, мне не хватало
id
аргумента в приведенном выше примере — но не в моем коде, я исправил это выше. Я попробовал curl, но результат тот же. Когда я обращаюсьhttp://localhost:3000/publications/api-routes
, я получаю возвращенный JSON. Но сcurl http://localhost:3000/publications/export/123
я получаю html-страницу, которая выглядит очень похоже на главную страницу приложения.
Ответ №2:
О, когда я публикую URL как export/:0
, он сопоставляется с http://localhost:3000/export/123
, но не с http://localhost:3000/publications/export/123
. Я думал, что «публикации» будут добавлены автоматически.