Javascript 谷歌云功能::不能使用';要求';声明
问题 当我在google云函数中包含任何“require”语句时,我会收到警告:“函数处于活动状态,但上次部署失败” 解决方案? 我非常确定我需要在package.json文件中包含依赖项,但我不知道要包含哪些依赖项,或者如何编写这些依赖项 背景 我已经用Java构建了一个android应用程序,我正在尝试集成条带支付。Stripe要求我有一台服务器来处理请求,但我正在尝试使用google云功能(因此我不必支付/管理服务器) 我试着效仿,但不起作用。作者没有包含package.json文件,我不确定应该在其中添加哪些依赖项。我以前从未编写过java脚本,我的背景是Python、C++、java。p> 我也看过谷歌的教程。我也搜索过S.O.但找不到解决方案。问题可能是我不是javascript开发人员。我正在尝试插入并播放其他人的代码,以使我的android(java)应用程序的一个特定部分正常工作 故障排除 为了排除故障,我使用了google提供的“helloWorld”示例。Hello World函数可以自行查找。如果我在顶部添加这三条require语句中的任何一条,就会得到警告:“函数处于活动状态,但上次部署失败” 代码 --index.jsJavascript 谷歌云功能::不能使用';要求';声明,javascript,require,google-cloud-functions,package.json,Javascript,Require,Google Cloud Functions,Package.json,问题 当我在google云函数中包含任何“require”语句时,我会收到警告:“函数处于活动状态,但上次部署失败” 解决方案? 我非常确定我需要在package.json文件中包含依赖项,但我不知道要包含哪些依赖项,或者如何编写这些依赖项 背景 我已经用Java构建了一个android应用程序,我正在尝试集成条带支付。Stripe要求我有一台服务器来处理请求,但我正在尝试使用google云功能(因此我不必支付/管理服务器) 我试着效仿,但不起作用。作者没有包含package.json文件,我不
var app = require('express')();
var http = require('http').Server(app);
var stripe = require('stripe')(
"your_stripe_key"
);
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
//initiate a one-off charge for a customer
exports.chargeCustomer = app.get(".../charge/:customerid/:token/:amount", function chargeCustomer (req,res){
stripe.charges.create({
customer: req.params.customerid,
source: req.params.token,
currency: 'usd',
amount:req.params.amount
},function(err, charge) {
if(err) {
return res.send(JSON.stringify(err));
}
res.send(JSON.stringify(charge));
});
});
--package.json
{
"name": "sample-http",
"version": "0.0.1"
}
注释
如果你知道我做错了什么,请记住我从来没有写过javascript。我不认为我问了一个重复的问题,我已经搜索过了,但答案可能在另一个问题中,我只是不理解它,因为我从未编写过javascript。是一个带有包的示例。json
,文档中提到了它。我将举一个例子说明其内容:
{
"nyc": {
"exclude": [
"build/src/apis",
"build/test"
]
},
"license": "Apache-2.0",
"dependencies": {
"google-auth-library": "^1.1.0",
"qs": "^6.5.1",
"string-template": "1.0.0",
"uuid": "^3.1.0"
},
...
}
也考虑阅读<代码> NPM .js<代码> >代码>包。JSON 是通用的,不是云函数特定的。
是一个例子,代码< >包。JSON < /代码>,这是在文档中提到的。我将举一个例子说明其内容:
{
"nyc": {
"exclude": [
"build/src/apis",
"build/test"
]
},
"license": "Apache-2.0",
"dependencies": {
"google-auth-library": "^1.1.0",
"qs": "^6.5.1",
"string-template": "1.0.0",
"uuid": "^3.1.0"
},
...
}
也考虑阅读<代码> NPM .js<代码> >代码>包。JSON 是通用的,不是云函数特定的。
< p>我写了您在上面的问题中提到的RePO。问题是您没有正确格式化package.json
文件
部署函数时,需要部署索引
文件和相应的包.json
。您可以通过命令行进行部署,也可以简单地使用CloudFunctions产品中的Google在线编辑器进行部署
package.json
文件指定代码需要运行的依赖项。基本上,索引文件需要知道需要哪些第三方库才能实现其功能。在我的示例中,您会注意到下面的代码包含一个用于“dependencies”
的小节点,它将告诉Google Cloud函数要随代码安装哪些软件包
您引用的特定索引
文件正在通过条带创建费用。我在许多生产产品中使用了此代码的变体,package.json
文件如下所示:
{
"name": "createCharge",
"version": "1.0.0",
"description": "create and charge in Stripe",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "Your Name",
"license": "ISC",
"dependencies": {
"express": "^4.14.0",
"stripe": "^4.4.0",
"body-parser": "~1.13.3",
"async": "^2.0.1",
"promise": "^7.1.1"
},
"engines": {
"node": "4.1.1"
},
"repository": {
"type": "git",
"url": "<path/to/your/repo.git>"
}
}
{
“名称”:“createCharge”,
“版本”:“1.0.0”,
“说明”:“创建并在条带中充电”,
“main”:“index.js”,
“脚本”:{
“测试”:“echo\”错误:未指定测试\“&退出1”
},
“关键词”:[],
“作者”:“您的姓名”,
“许可证”:“ISC”,
“依赖项”:{
“express”:“^4.14.0”,
“条纹”:“^4.4.0”,
“正文分析器”:“~1.13.3”,
“异步”:“^2.0.1”,
“承诺”:“^7.1.1”
},
“发动机”:{
“节点”:“4.1.1”
},
“存储库”:{
“类型”:“git”,
“url”:”
}
}
另外,请注意,上面javascript的“repository”
块不是必需的,因此如果您没有这个特定函数的托管repo,可以随意删除它
希望这有帮助 我写了你在上面的问题中提到的回购协议。问题是您没有正确格式化package.json
文件
部署函数时,需要部署索引
文件和相应的包.json
。您可以通过命令行进行部署,也可以简单地使用CloudFunctions产品中的Google在线编辑器进行部署
package.json
文件指定代码需要运行的依赖项。基本上,索引文件需要知道需要哪些第三方库才能实现其功能。在我的示例中,您会注意到下面的代码包含一个用于“dependencies”
的小节点,它将告诉Google Cloud函数要随代码安装哪些软件包
您引用的特定索引
文件正在通过条带创建费用。我在许多生产产品中使用了此代码的变体,package.json
文件如下所示:
{
"name": "createCharge",
"version": "1.0.0",
"description": "create and charge in Stripe",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "Your Name",
"license": "ISC",
"dependencies": {
"express": "^4.14.0",
"stripe": "^4.4.0",
"body-parser": "~1.13.3",
"async": "^2.0.1",
"promise": "^7.1.1"
},
"engines": {
"node": "4.1.1"
},
"repository": {
"type": "git",
"url": "<path/to/your/repo.git>"
}
}
{
“名称”:“createCharge”,
“版本”:“1.0.0”,
“说明”:“创建并在条带中充电”,
“main”:“index.js”,
“脚本”:{
“测试”:“echo\”错误:未指定测试\“&退出1”
},
“关键词”:[],
“作者”:“您的姓名”,
“许可证”:“ISC”,
“依赖项”:{
“express”:“^4.14.0”,
“条纹”:“^4.4.0”,
“正文分析器”:“~1.13.3”,
“异步”:“^2.0.1”,
“承诺”:“^7.1.1”
},
“发动机”:{
“节点”:“4.1.1”
},
“存储库”:{
“类型”:“git”,
“url”:”
}
}
另外,请注意,上面javascript的“repository”
块不是必需的,因此如果您没有这个特定函数的托管repo,可以随意删除它
希望这有帮助 所有必需的模块是否都可用于索引