如何在nodejs中

时间:2017-09-14 13:53:55

标签: node.js file-upload firebase-realtime-database

我是nodejs和firebase的新手,但我需要上传文件。我看到this教程,但抓不到多少。我完全糊涂了。在本教程中,是传递所选文件的函数? 代码是:

const keyFilename = "./my-private-api-key-file.json"; //replace this with api key file
const projectId = "my-project-id-should-go-here" //replace with your project id
const bucketName = `${projectId}.appspot.com`;

const mime = require('mime');
const gcs = require('@google-cloud/storage')({
    projectId,
    keyFilename
});

const bucket = gcs.bucket(bucketName);

const filePath = `./package.json`;
const uploadTo = `subfolder/package.json`;
const fileMime = mime.lookup(filePath);

bucket.upload(filePath, {
    destination: uploadTo,
    public: true,
    metadata: {
        contentType: fileMime,
        cacheControl: "public, max-age=300"
    }
}, function (err, file) {
    if (err) {
        console.log(err);
        return;
    }
    console.log(createPublicFileURL(uploadTo));
});

function createPublicFileURL(storageName) {
    return `http://storage.googleapis.com/${bucketName}/${encodeURIComponent(storageName)}`;
}

我想在用户选择文件时上传文件。任何人都可以提供一些东西开始吗?感谢。

2 个答案:

答案 0 :(得分:0)

您所遵循的教程的目的是在文件上传到您的服务器后处理它们。这对于服务(如Heroku或OpenShift,如教程中提到的),对于短期文件系统不会永久保存上传内容非常有用。

您应该尝试关注this tutorial,这解释了如何使用AJAX构建前端用户界面。完成后,您可能需要按照问题中链接的教程将这些文件保存到永久存储中。

希望这会有所帮助。

答案 1 :(得分:0)

使用multiparty库,它在我当前的nodejs项目中帮助了我很多