【问题标题】:how to send the a zip file as response in node js?如何在节点 js 中发送 zip 文件作为响应?
【发布时间】:2013-08-08 20:33:13
【问题描述】:

大家好,我试图发送如下回复

exports.zipfile = function(req, res) {
var zip = new require('node-zip')()
zip.file('zipfile.file', 'hello there')
var data = zip.generate({
    type : 'string'
})

var archiver = require('archiver');
var fs = require('fs');
var StringStream = require('string-stream');

http.createServer(function(request, response) {
    var dl = archiver('zip')
    dl.pipe(response)
    dl.append(new fs.createReadStream('/qtiexp/routes/zipfile.xml'), {
        name : 'YoDog/SubFolder/static.txt'
    })
    dl.append(new StringStream("Ooh dynamic stuff!"), {
        name : 'YoDog/dynamic.txt'
    })
    dl.finalize(function(err) {
        if (err)
            res.send(200000)
    })
}).listen(13000);

};

但我仍然听到 Eaddrinuse 错误 我想将 xml zipfile 作为 res 从 nodejs 发送到前端

【问题讨论】:

  • EADDRINUSE 是当您有另一个进程在同一个端口上侦听时引起的。
  • 但我在不同的服务器上运行服务器,一个是 3000,另一个是 13000
  • 检查每个服务器中的其他进程然后...
  • 检查过但同样的错误
  • 使用netstat查看还有谁在监听13000端口。

标签: node.js


【解决方案1】:

使用 netstat 查找正在使用该端口的进程。

$ netstat -onp tcp
Proto  Local Address          Foreign Address        State           PID
TCP    127.0.0.1:60472        127.0.0.1:62522        ESTABLISHED     408
TCP    127.0.0.1:62522        127.0.0.1:60472        ESTABLISHED     1204

$

您甚至可以使用 grep 来缩小范围:

$ netstat -onp tcp | grep 13000
TCP    127.0.0.1:13000        127.0.0.1:62522        ESTABLISHED     408

$

【讨论】:

    猜你喜欢
    • 2018-01-14
    • 2014-07-21
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 2021-01-17
    • 1970-01-01
    相关资源
    最近更新 更多