嗨,我正试图使用以下给定的代码将一个基本64文件从NodeJs上传到firebase存储(谷歌云存储(。但我收到一个错误,说明
这里的错误类型错误[ERR_INVALID_ARG_TYPE]:;路径";自变量必须是字符串类型。在validateString处接收到类型对象(internal/validators.js:125:11(
代码为:
const key = require('../key.json');
const {Storage} = require('@google-cloud/storage');
//var gcs = require('@google-cloud/storage');
exports.uploadVideo = functions.https.onRequest((req, res) => {
const gcs =new Storage({
projectId: "<my-project-id>",
keyFilename: key
});
const bucket = gcs.bucket("example.appspot.com");
const gcsname = 'test.pdf';
const file = bucket.file(gcsname);
var pdfdata = "xNC9YUmVmU3RtIDE1NzQ+Pg0Kc3RhcnR4cmVmDQoyMTY5DQolJUVPRg==";
var buff = Buffer.from(pdfdata, 'binary').toString('utf-8');
const stream = file.createWriteStream({
metadata: {
contentType: 'application/pdf'
}
});
stream.on('error', (err) => {
console.log("Error here",err);
});
stream.on('finish', () => {
console.log(gcsname);
});
stream.end(new Buffer.from(buff, 'base64'));})
有人能给我一条出路吗?我不能理解这个问题。感谢
这意味着程序期望path
参数的类型为string
,例如:"path/to/whatever"
。你给它一个对象——例如:{ path: "path/to/whatever" }
正如错误所说的"TypeError[ERR_INVALID_ARG_TYPE]:;路径";参数的类型必须为字符串。接收未定义的";
它试图从路径中获取,在查找路径时,应该将这些变量添加到.env文件的根目录中。。它将获取正确的变量。如果你还有困难,请告诉我。。
有关更多详细信息,您可以参考谷歌云功能的快速路由。
如果使用"反应脚本"3.x.x";将其替换为"^3.4.1"版本或最新版本。请确保在npm/yarn安装之前删除了node_modules文件夹