Получить код статуса HTTP с MeteorJS

Вы знаете, могу ли я получить код состояния HTTP с MeteorJS (или напрямую с NodeJS)? Я прочитал документацию по HTTP Api, но безрезультатно:(

Для настройки моих маршрутов я использую Iron Router.

Я хотел бы получить код статуса моей страницы для добавления prerender balise:

<meta name="prerender-status-code" content="404">

Я использую MeteorJS на последней версии:)

Спасибо, сообщество!

3 ответа

Вы можете попробовать использовать:Iron.Location.get().path; Чтобы получить текущую ссылку. И используйте решение Андре, чтобы найти код состояния.

Чтобы сообщить заранее, что ваша страница или данные не были найдены, вы должны добавить следующий код в заголовок страницы.

<meta name="prerender-status-code" content="404">

Я использую для этого https://github.com/kadirahq/meteor-dochead.

Router.route('my-route', {
    path: ['/my-route/:param1'],
    waitOn: function () {
        return [
            Meteor.subscribe('myCollection', this.params.param1)
        ];
    },
    data: function () {
        var data  =   myCollection.findOne({});

        if (this.ready() && !data) {
            var metaInfo = {name: "prerender-status-code", content: "404"};
            DocHead.addMeta(metaInfo);
        }

        return {
            routerData: {
                data: data
            }
        }
    }
});

Вы также можете установить его в шаблоне PageNotFound по умолчанию:

Template.PageNotFound.rendered = function() {
    var metaInfo = {name: "prerender-status-code", content: "404"};
    DocHead.addMeta(metaInfo);
});

Из документов обратный вызов, переданный в HTTP.call, будет вызываться с 2 параметрами: ошибка, результат. Результатом является объект со свойством statusCode, которое является числом, если запрос выполнен успешно, пустым при ошибке.

При запуске в асинхронном режиме обратный вызов получает два аргумента, error и result. Аргумент error будет содержать Error, если запрос каким-либо образом завершится неудачно, включая сетевую ошибку, тайм-аут или код состояния HTTP в диапазоне 400 или 500. В случае кода состояния HTTP 4xx/5xx свойство response on error соответствует содержимому объекта результата. При запуске в синхронном режиме либо результат возвращается из функции, либо выдается ошибка.

Содержимое объекта результата:

Номер StatusCode

Числовой код состояния HTTP-результата или ноль при ошибке.

Пример кода из документов:

HTTP.call('POST', 'http://api.twitter.com/xyz', {
    data: { some: 'json', stuff: 1 }
}, () => (error, result) {
    if (!error) {
        console.log(result.statusCode);
    }
});
Другие вопросы по тегам