首页 > 解决方案 > 尝试部署我的第一个谷歌云功能 - 找不到快递

问题描述

我正在尝试部署我的第一个谷歌云功能,其代码在这里:

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)

好像我缺少模块快递。我该如何添加这个?

标签: javascriptexpressgoogle-cloud-functions

解决方案


当您使用 Cloud Functions 部署 Node.js 代码函数时,您还需要提供格式良好的 package.json 文件,该文件声明您的函数所需的依赖项,这些依赖项通常与requires()代码中的语句相匹配。在您的示例中,您的代码需要 express,因此您必须提供一个 package.json 声明您需要 express。例如:

{
  "dependencies": {
    "express": "^4.16.4"
  }
}

这是Google 上与 Node.js for Cloud Functions 的依赖项相关的文档的链接。


推荐阅读