Nodejs geojson2geobuf

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

const http = require("http")

const geobuf = require("geobuf")

const Pbf = require("pbf")

const server = http.createServer(

(req0,res0)=>{

if(req0.url.includes('application/geobuf') || req0.url.includes('application%2Fgeobuf')){

let url = req0.url.replace('geobuf', 'json')

url = 'http://ip:port' + url;

http.get(url, (res)=>{

const { statusCode } = res;

const contentType = res.headers['content-type'];

let error;

// Any 2xx status code signals a successful response but

// here we're only checking for 200.

if (statusCode !== 200) {

error = new Error('Request Failed.\n' +

`Status Code: ${statusCode}`);

} else if (!/^application\/json/.test(contentType)) {

error = new Error('Invalid content-type.\n' +

`Expected application/json but received ${contentType}`);

}

if (error) {

console.error(error.message);

// Consume response data to free up memory

res.resume();

return;

}

res.setEncoding('utf8');

let rawData = '';

res.on('data', (chunk) => { rawData += chunk; });

res.on('end', () => {

try {

const parsedData = JSON.parse(rawData);

const buffer = geobuf.encode(parsedData, new Pbf());

res0.writeHead(200, {'Content-Type': 'application/geobuf',"Access-Control-Allow-Origin":"*"})

res0.end(buffer)

} catch (e) {

console.error(e.message);

}

});

}).on('error', (e) => {

console.error(`Got error: ${e.message}`);

});

}

}

)

server.listen(8001,()=>console.log("server is listening at 8001..."))

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: NodeJS