【问题标题】:How to use await async in firebase cloud function?如何在 Firebase 云功能中使用 await async?
【发布时间】:2019-01-23 06:39:53
【问题描述】:

我在 nodejs 6 中构建了几个云功能,现在我想使用 await。我怎么做?如何升级到节点 8?我不想转向打字稿。

我尝试将 "engines": {"node": "8"} 添加到 package.json 但它没有任何改变。

这是我做的一个测试云功能:

exports.awaittest = functions.https.onRequest(async (req, res)=>{
    ref = await admin.database().ref("/something/");
    res.send(ref)
})

当我尝试部署它(使用 package.json 编辑)时,我得到了:

SyntaxError: Unexpected token (
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:549:28)
    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)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at getUserFunction (/var/tmp/worker/worker.js:413:24)
!  functions[awaittest]: Deployment error.
Function load error: Code in file index.js can't be loaded.
Is there a syntax error in your code?
Detailed stack trace: /user_code/index.js:59
exports.awaittest = functions.https.onRequest(async (req, res)=>{
                                                    ^

如何升级到 node8?我已经在 node6 中部署了 6 个函数。

【问题讨论】:

  • node.green ...您必须升级。只需 npm 升级到 node 或直接安装(windows)
  • 请编辑问题以显示您正在使用的 CLI 版本,并证明您的函数已部署到节点 8(它将在输出中)。你也应该知道 TypeScript 是 JavaScript 的严格超集,所以如果你把它复制到 TS,你所有的 JavaScript 都会继续工作。
  • 我没有使用笔记本电脑,但我确保我的所有工具和框架都是最新的。如果您认为我应该转向 typescript,请告诉我如何将我的项目迁移到 ts。
  • 您还需要在本地机器上使用 Node.js 8,否则 CLI 在尝试从您的代码中提取触发器信息时会出现解析错误。
  • 您能否确保将"engines": {"node": "8"} 添加到functions/package.json,而不是package.json

标签: node.js firebase asynchronous async-await google-cloud-functions


【解决方案1】:

我通过更改以下内容在functions/.eslintrc.json 目录中解决了它:

"parserOptions": {
  "ecmaVersion": 6
}

// to

"parserOptions": {
  "ecmaVersion": 2017
}
'''

【讨论】:

  • 我添加了引擎节点 8,但仍然出现同样的错误。 !image.
  • 您是否删除了谷歌云控制台中的旧功能。您必须在 GCC 中执行此操作,而不是 firebase。
  • 谢谢,我找到了解决办法,把它放到.eslintrc.json "parserOptions": {"ecmaVersion": 2017},
猜你喜欢
  • 2020-03-22
  • 2023-03-24
  • 2021-01-13
  • 2019-10-31
  • 2020-12-17
  • 2021-03-28
  • 2017-10-10
相关资源
最近更新 更多