Google Cloud Functions:require(...)不是函数

时间:2017-11-07 03:36:44

标签: function api google-cloud-functions speech

我正在尝试部署Google Cloud功能,我首先将初始需求添加到index.js文件中:

// Import the Google Cloud client libraries
const nl = require('@google-cloud/language')();
const speech = require('@google-cloud/speech')();
const storage = require('@google-cloud/storage')();

但是在部署时我得到以下消息:

Detailed stack trace: TypeError: require(...) is not a function

这只发生在@ google-cloud / speech和@ google-cloud / language模块中,@ google-cloud / storage模块作为一个函数正好加载(我通过评论前两个来测试)。

任何建议都将不胜感激。

Borrigan

4 个答案:

答案 0 :(得分:8)

参考此Github commentgoogle-cloud v2软件包中进行了一些更改

因此,您导入以下软件包:

const {Storage} = require('@google-cloud/storage');
const storage = new Storage({
  // config...
});

答案 1 :(得分:2)

Google云计算功能是nodejs模块,因此语法与nodejs语法相同。

关于你的问题:

你必须写

const storage = require('@google-cloud/storage');

(在每个陈述的末尾没有())

所以正确的声明将是:

// Import the Google Cloud client libraries
const nl = require('@google-cloud/language');
const speech = require('@google-cloud/speech');
const storage = require('@google-cloud/storage');

我希望这会有所帮助。

答案 2 :(得分:1)

它告诉您所需要的不是函数,因此不能用()调用

如果您在这里查看:https://www.npmjs.com/package/@google-cloud/language#using-the-client-library 您看到返回了具有多个类返回函数的服务对象,因此应按以下步骤进行设置:

const nl = require('@google-cloud/language');
const language = new nl.LanguageServiceClient();

答案 3 :(得分:0)

遵循以下新语法:

const {Storage} = require('@google-cloud/storage');
const googleCloudStorage = new Storage({
    projectId: 'your-project-id',
    keyFilename: 'path-to-json-config-file'
});