Вопрос был изменен в ходе выполнения
Значение «результат» с сервера — это уникальный URL-адрес (это не мой домен), который я передаю обратно клиенту (см. мою функцию Meteor.call).
Как я могу направить пользователя на этот URL?. Использование железа: маршрутизатор Router.go();
не работает, потому что оно добавляет URL-адрес к моему домену.
Метод вызывается, когда пользователь нажимает кнопку «getgoodreads».
Сервер.js
var request = Npm.require('request');
var querystring = Npm.require('querystring');
Meteor.methods({
getGoodreads: function () {
request.post('http://www.goodreads.com/oauth/request_token', {
oauth: {
consumer_key: 'someKey',
consumer_secret: 'someSecretKey'
}
}, function (err, res, body) {
req_data = querystring.parse(body);
result= 'http://www.goodreads.com/oauth/authorize?' + querystring.stringify({oauth_token: req_data.oauth_token});
});
return result;
}
});
клиент.js
Template.profiles.events({
'click #goodreads': function (event) {
event.preventDefault();
Meteor.call('getGoodreads', function (error, result) {
if (error) {
console.log(error)
} else {
console.log(result);
Router.go(result);
}
});
}
});
Я получаю эту ошибку: * К сожалению, похоже, что на клиенте или сервере нет маршрута для URL-адреса: "http://localhost:3000/oauth/authorize?oauth_token=IBR4tGXdAgQbEsqmxve5Q."
Правильный URL для перенаправления: http://www.goodreads.com/oauth/authorize?oauth_token=IWDH8EWUhn1jtrjsQA
*
библиотека
Router.route('/profile/', {
name: 'profile',
waitOn: function () {
return Meteor.subscribe('profile');
},
action: function () {
***maybe make the post function here?***
// this.ready() is true if all items returned from waitOn are ready
if (this.ready())
this.render('profile');
else
this.render('Loading');
}
});
*Ссылка «Результат» ведет пользователя на страницу goodreads, где пользователь предоставляет мне доступ к своим данным, войдя в свою учетную запись goodreads. Однако, поскольку этот маршрут не определен в моих маршрутах, я получаю сообщение об ошибке. Это будет иметь место, потому что каждый URL-адрес будет уникальным.