如何在节点js中将zip文件作为响应发送?

时间:2013-08-08 11:43:00

标签: node.js

我所有人都试图将响应发送到下面

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发送到前端

1 个答案:

答案 0 :(得分:0)

使用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

$