firebase - 如果我向请求添加回调,则无法部署功能
问题描述
我对 firebase 功能有疑问。我需要调用外部 API,因此我正在使用请求包。这对其他项目来说从来都不是问题。我现在遇到一种情况,如果我只调用
request(options)
. 但是如果我添加如下回调,我将无法部署该函数:
request(options, function (err, res, body) {})
我没有得到非常有用的日志。我在调试日志中看到的是:
10 silly lifecycle functions@~lint: Args: [ '/d /s /c', 'tslint --project tsconfig.json' ]
11 silly lifecycle functions@~lint: Returned: code: 2 signal: null
12 info lifecycle functions@~lint: Failed to exec lint script
13 verbose stack Error: functions@ lint: `tslint --project tsconfig.json`
13 verbose stack Exit status 2
13 verbose stack at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:301:16)
13 verbose stack at EventEmitter.emit (events.js:189:13)
13 verbose stack at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:189:13)
13 verbose stack at maybeClose (internal/child_process.js:970:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
14 verbose pkgid functions@
如果它有趣,我的 package.json 是这样的:
{
"name": "functions",
"scripts": {
"lint": "tslint --project tsconfig.json",
"build": "tsc",
"serve": "npm run build && firebase serve --only functions",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "10"
},
"main": "lib/index.js",
"dependencies": {
"@google-cloud/firestore": "^3.5.0",
"buffer": "^5.6.0",
"cors": "^2.8.5",
"dateformat": "^3.0.3",
"firebase-admin": "^8.12.1",
"firebase-functions": "^3.6.1",
"request": "^2.83.0"
},
"devDependencies": {
"tslint": "^5.12.0",
"typescript": "^3.2.2"
},
"private": true
}
我真的找不到回调会阻止部署的原因。
我将不胜感激任何形式的帮助。谢谢!
更新: 我的功能并没有真正做太多
exports.testApi = functions.https.onRequest((req, res) => {
var body = {
'key': 'val'
}
var options = {
uri: 'https://google.com',
method: 'POST',
body: body
}
// This works:
request(options);
//This can not be deployed
request(options, function(err, res, body) {
console.log(body);
});
});
解决方案
推荐阅读
- python - 在没有机器学习库的情况下,在 Python 中开发一个朴素贝叶斯分类器作为电子邮件过滤器
- python - 我怎样才能用更简单的方式写这个?
- postgresql - 使用 Postgres FATAL 运行 Docker:缓存查找失败
- sql - SQL Developer - 11g 数据库 - 调试错误
- c# - 在 C# 中从序列化为 JSON 的 mongodb 文档中删除 ObjectId
- python - 从同一笔记本导入表
- javascript - react-native-web 如何配置 webpack
- python - Pandas:基于跨 2 列的条件按组进行行比较
- css - 增加移动 shopify 上的横幅宽度
- r - 使用“tidyverse”在重复测量设计中有效去除“NAs”