在Node.js项目中显示Azure子文件夹

时间:2017-03-27 11:52:40

标签: node.js azure express

我正在尝试使用Azure作为数据存储,使用Node和Express进行文件共享应用。

我正在努力展示我的容器的子文件夹。

我的代码如下所示:

  1. 我创建了这样的子文件夹,目的是隐藏'$$$。$$$' - 文件:

    app.post('/folderhandler', function (req, res) {
    var containerName = req.query.id;
    var folderName = req.body.folderName;
    
    var folder = folderName + '/$$$.$$$';
    
    blobSvc.createBlockBlobFromText(
        containerName,
        folder,
        'Hello, World!',
        function (error, result, response) {
            if (error) {
                console.log("Couldn't upload string");
                console.error(error);
            } else {
                console.log('String uploaded successfully');
            }
        });
    res.redirect('/container/' + containerName);
    });
    
  2. 然后我尝试在我的displayBlobs函数中使用新的'Subfolder'作为'container'变量。但这不起作用:

        app.get('/container/:containername/:subcontainer', function (req, res) {
    
        var containerName = req.params.containername;
        var subContainer = req.params.subcontainer;
    
        blobSvc.listContainersSegmented(null, function (err, containers) {
    
            blobSvc.listBlobsSegmented(subContainer, null, function (error, blobs) {
    
                res.render('manager.ejs', {
                    error: error,
                    title: 'Manager ' + containerName,
                    pageID: 'containers',
                    containername: subContainer,
                    listContainers: containers.entries,
                    listBlobs: blobs.entries,
                    breadcrumbs: [{
                        href: '/manager',
                        text: 'Manager'
                    }, {
                        href: '/container/' + containerName,
                        text: containerName
                    }, {
                        text: subContainer,
                        active: true
                    }]
                });
            });
        });
    });
    
  3. 我想我已经尝试了一切,所以我愿意接受建议:)

    • 提前致谢!

1 个答案:

答案 0 :(得分:1)

也许你在函数listBlobsSegmented(container, currentToken [, options], callback)中犯了一个错误,第一个参数应该是容器名,而不是子文件夹名。

如果要在子文件夹中显示blob项,请改用函数listBlobsSegmentedWithPrefix(container, prefix, currentToken [, options], callback),然后将子文件夹名称作为第二个参数prefix传递。