javascript - 尝试部署我的第一个谷歌云功能 - 找不到快递
问题描述
我正在尝试部署我的第一个谷歌云功能,其代码在这里:
https://github.com/rldaulton/GCF-Stripe/blob/master/Charge%20Customer/index.js
它从这一行开始:
var app = require('express')();
var http = require('http').Server(app);
但是,当我尝试使用 Node6 进行部署并执行函数名称 chargeCustomer 时出现此错误:
Function failed on loading user code. Error message: Code in file index.js can't be loaded.
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module 'express'
at Function.Module._resolveFilename (module.js:476:15)
at Function.Module._load (module.js:424:25)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/user_code/index.js:1:91)
at Module._compile (module.js:577:32)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
好像我缺少模块快递。我该如何添加这个?
解决方案
当您使用 Cloud Functions 部署 Node.js 代码函数时,您还需要提供格式良好的 package.json 文件,该文件声明您的函数所需的依赖项,这些依赖项通常与requires()
代码中的语句相匹配。在您的示例中,您的代码需要 express,因此您必须提供一个 package.json 声明您需要 express。例如:
{
"dependencies": {
"express": "^4.16.4"
}
}
这是Google 上与 Node.js for Cloud Functions 的依赖项相关的文档的链接。
推荐阅读
- javascript - 如何在这种情况下使用 Jest 测试 Express 路由器 catch 分支?
- javascript - 为什么不是
- oracle-sqldeveloper - 尝试在 Oracle SQL Developer 中使用 Sybase 连接时如何解决此错误?
- javascript - 有没有一种已知的方法可以在 Angular 中包含 Webfow JS 动画?
- xml - 根据条件添加新节点
- select - tinymce 将样式应用于整行,如标题、段落
- arrays - Angular FormGroup获取选定复选框的数组
- sql - 如何按日期计算枚举和分组
- c++ - 为什么这个重载决议选择带有右值引用的签名?
- ios - 如何将音频共享到我的 iOS 应用程序以及如何处理无法共享错误?