node.js - nodejs - 来自地理服务器的快速请求形状 zip 返回文本
问题描述
我正在从 express (node.js) 请求一个地理服务器来获取 wfs 服务中的 shape zip,但我只收到了文本。
var express = require('express');
var router = express.Router();
var fs = require('fs');
var request = require("request");
var DOWNLOAD_DIR = './downloads/';
router.get('/', function(req, res, next) {
var file_url='https://geo.gob.bo/geoserver/aasana/wfs?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&typeName=aerodromos&outputFormat=shape-zip';
request(file_url, function(err, resp, body) {
console.log('res',res);
console.log('body',body);
if(!err){
var file = fs.createWriteStream(DOWNLOAD_DIR + 'aerodromos');
var buff = new Buffer(body);
file.write(buff,function(err){
console.log(err);
});
file.end();
console.log(' downloaded to ' + DOWNLOAD_DIR);
}else{
console.log("No results error.",err);
}
});
res.render('index', { title: 'descargado' });
});
module.exports = router;
我正在尝试放入文件 zip,但我无法打开它。
解决方案
您需要将编码设置为 null ,在您的情况下,这将被视为缓冲区而不是字符串
request({url: file_url, encoding: null}, function(err, resp, body) {
推荐阅读
- rust - 为什么通过 auto-deref 访问的引用变量会被移动?
- amazon-web-services - 用于确定可用语言的 Amazon Translate API 调用
- html - 如何使用 CSS 删除 div 之间的空间?
- xml - 缺少)在 Odoo QWeb xml 文件中的参数列表之后
- php - 如何从 Laravel 5.6 中的控制器获取数据副类别名称?
- sql - SQL 数据库设计问题:多对一关系与完全分离
- java - 非常简单的 apache CXF - 春季启动 JAX-RS 应用程序
- flutter - onTap 改变所有卡片的颜色,而不仅仅是被点击的那张
- java - Java 8 流 groupingBy 以对象为键的对象字段
- r - 在一个列表R中插入许多csv文件中列的内容