我们正在使用 express 4,现在我有这样的东西:
var express = require('express'),
router = express.Router();
router.get('/local_modules/*', function (req, res, next) {
var moduleName = req.url.match(/local_modules\/(.*?)\//).pop(1)
res.sendFile(filePath + '.js');
}
我想做一些更像是:
router.get('/local_modules/*', function (req, res, next) {
var moduleDir = req.url.match(/local_modules\/(.*?)\//).pop(1)
fs.readdir(moduleDir, function(err, files) {
files.forEach(function(f) {
res.sendFile(path.join(moduleDir, f));
})
}
}
但这行不通。如何使用 express 提供多个文件?注意:不仅仅是目录中的所有文件(如示例中所示)——这可能可以通过 app.use 来完成; express.static
,但是特定的文件集(例如,我可能需要从 bower.json 获取文件列表)
最佳答案
除非您使用自己的特殊格式(标准多部分或其他格式)然后在客户端解析(例如通过 XHR),否则无法像在单个响应中那样发送多个文件。
可能最简单的解决方法是归档(zip、7zip、tarball 等)文件,然后改为提供该归档文件。但是,这假设您希望用户下载它而不是在浏览器中使用文件(除非您在浏览器中有 zip 等解析器并使用 XHR)。
关于node.js - 通过管道发送多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30923010/