问题
My upload.js file contains the following code:
module.exports = {
up: function () {
const storage = require('@google-cloud/storage');
const fs = require('fs');
const gcs = storage({
projectId: 'MY_PROJECT_ID',
keyFilename: './service-account.json'
});
var bucket = gcs.bucket('MY_BUCKET');
bucket.upload('picture.jpg', function(err, file) {
if (err) throw new Error(err);
});
},
}
It works through the terminal but how do I call it on form submission button click or just from different file ?
When I try it gives me:
Cannot read property 'prototype' of undefined
I'm quite new to NodeJs and I don't really know what to do.
Google documentation doesn't help me at all unfortunately :/
回答1:
I would recommend moving your requires
to the first line.
const storage = require('@google-cloud/storage');
const fs = require('fs');
module.exports = {
up: function () {
const gcs = storage({
projectId: 'MY_PROJECT_ID',
keyFilename: './service-account.json'
});
const bucket = gcs.bucket('MY_BUCKET');
bucket.upload('picture.jpg', function(err, file) {
if (err) throw new Error(err);
});
},
}
I would also console.log(storage)
and confirm it is defined.
回答2:
`const {
Storage
} = require('@google-cloud/storage');
const up = () => {
const gcs = new Storage({
projectId: 'xxxxxxxxx',
keyFilename: './service-account.json'
});
const bucket = gcs.bucket('xxxxxxxxxx');
bucket.upload('./test-rev.mkv', function (err, file) {
if (err) throw new Error(err);
});
}
`
来源:https://stackoverflow.com/questions/48919153/upload-file-to-google-cloud-storage-with-nodejs