2015-04-14 3 views
0

мне было интересно, как я мог бы достичь следующего использования Ironrouter в meteorjs:создания URL прокси с meteorjs

app.route("/api/tts").get(function(req,res){ 
    res.type('audio/mpeg'); 

    var text = req.query.q; 
    var request = require('request'); 
    var url = "https://translate.google.pl/translate_tts?ie=UTF-8&q=" + text + "&tl=en&total=1&idx=0&client=t&prev=input"; 
    request.get(url).pipe(res); 
}); 

ответ

0

Если iron:router уже установлена, то вы уже можете. Все, что вам нужно сделать, это установить request, используя meteorhacks:npm.

Тогда вы просто написать:

Router.route("/api/tts", function() { 
    // NodeJS request object 
    var req = this.request; 
    // NodeJS response object 
    var res = this.response; 
    res.type('audio/mpeg'); 

    var text = req.query.q; 
    var request = Meteor.npmRequire('request'); 
    var url = "https://translate.google.pl/translate_tts?ie=UTF-8&q=" + text + "&tl=en&total=1&idx=0&client=t&prev=input"; 
    request.get(url).pipe(res); 
}, { where: 'server' }); 

Позвольте мне знать, если это работает.

0

Вы не можете использовать IronRouter, Метеор маршрутизация выполняется на клиенте (ответ от @rclai не будет работать, потому что запрос все еще передается от клиента ..)

This solution используя WebApp модуль, поставляемый с Meteor для определения маршрутов сервера, - это именно то, что вам нужно.

например. что-то вроде этого:

import { WebApp } from 'meteor/webapp'; 

WebApp.connectHandlers.use('/api/tts', (req, res, next) => { 

    var text = res.query.q; 
    var url = "https://translate.google.pl/translate_tts?ie=UTF-8&q=" + text + "&tl=en&total=1&idx=0&client=t&prev=input"; 

    HTTP.call("GET", url, {}, function(err, response){ 

     if(err){ 
     res.writeHead(500); 
     res.end('Failed...'); 
     } 
     else { 
     res.end(response.content); 
     } 
    }); 

}); 
Смежные вопросы