首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nodejs启动代理服务器,这样它就可以服务以"/wps_ proxy /wps_proxy?url=“为前缀的请求

使用nodejs启动代理服务器,这样它就可以服务以"/wps_ proxy /wps_proxy?url=“为前缀的请求
EN

Stack Overflow用户
提问于 2016-07-08 00:22:06
回答 1查看 108关注 0票数 0

我想用node.js启动一个代理服务器,这样它就可以服务以"/wps_ proxy /wps_proxy?url=“为前缀的请求。我想要它,所以我可以使用north52的wps-js库 (查看安装技巧)。我已经有了运行应用程序的服务器。

到目前为止,我试过的是:

server.js文件

代码语言:javascript
复制
var express = require('express');
var bodyParser = require('body-parser');
var fs = require('fs');
var path = require("path");

var app = express();
app.use(express.static(__dirname + '/' + 'public'));

var urlencodedParser = bodyParser.urlencoded({ extended: false });

//****** this is my try ******************************

app.get('/wps_proxy/wps_proxy',function (req,res){
    res.sendfile(__dirname + '/' + 'public/wps_proxy/wps-js/target/wps-js-0.1.2-SNAPSHOT/example.html');

    if(req.query !== undefined){//because it enters sometimes without url

    var http = require('http');

    //Options to be used by request
    var options = {
        host:"geostatistics.demo.52north.org",//fixed given data
        port:"80",
        path:"/wps/WebProcessingService"
    };
    var callback = function(response){
        var dat = "";
        response.on("data",function(data){
            dat+=data;
        });
        response.on("end", function(){
            res.end(dat)
        })

    };
    //Make the request
    var req = http.request(options,callback);
    req.end()
    }       
})
var ipaddress = process.env.OPENSHIFT_NODEJS_IP||'127.0.0.1';
var port      = process.env.OPENSHIFT_NODEJS_PORT || 8080;

app.set('port', port);

app.listen(app.get('port'),ipaddress, function() {
    console.log( 'Server started on port ' + app.get('port'))
})

//***************************************

但这不管用..。我认为数据没有被正确地发回。

这是我想做的一个活生生的例子。http://geoprocessing.demo.52north.org/wps-js-0.1.1/

这是我的应用程序的一个活生生的例子(检查控制台中的错误) 代理

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-08 11:17:39

我在如何在node.js中创建简单的http代理?上找到了我的答案,所以我解决这个问题的方法是:

代码语言:javascript
复制
app.get('/wps_proxy/wps_proxy',function (req,res){

     var queryData = url.parse(req.url, true).query;
if (queryData.url) {
    request({
        url: queryData.url
    }).on('error', function(e) {
        res.end(e);
    }).pipe(res);
}
else {
    res.end("no url found");
}       
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38257235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档