gpt4 book ai didi

javascript - ESLint 错误尝试部署函数 Firebase

转载 作者:数据小太阳 更新时间:2023-10-29 04:24:35 25 4
gpt4 key购买 nike

我尝试部署 fireabase 示例,但是当我尝试部署它时,CLI 启动错误:

[代码]

const functions = require('firebase-functions'); //to activate firebase functions

const admin = require('firebase-admin'); //to active firebase database permissions

admin.initializeApp(functions.config().firebase);

exports.addMessage = functions.https.onRequest((req, res) => {
// [END addMessageTrigger]
// Grab the text parameter.
const original = req.query.text;
// [START adminSdkPush]
// Push the new message into the Realtime Database using the Firebase Admin SDK.
admin.database().ref('/messages').push({original: original}).then(snapshot => {
// Redirect with 303 SEE OTHER to the URL of the pushed object in the Firebase console.
res.redirect(303, snapshot.ref);
});
// [END adminSdkPush]
});

[错误]

  15:3   error  Expected catch() or return                  promise/catch-or-return
15:69 error Each then() should return a value or throw promise/always-return

✖ 2 problems (2 errors, 0 warnings)


npm ERR! Darwin 17.4.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "--prefix" "/Users/user/test/functions" "run" "lint"
npm ERR! node v6.10.2
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! functions@ lint: `eslint .`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the functions@ lint script 'eslint .'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the functions package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! eslint .
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs functions
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls functions
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR! /Users/eliassebastian/Developer/npm-debug.log

Error: functions predeploy error: Command terminated with non-zero exit code1

我看一下 firebase 提供的原始 final here

我是 Javascript 和这个世界的新手,所以我真的迷失了这种类型的消息。

我该如何解决这个问题?

最佳答案

ESLint 警告是合法的。要获得关于每一个的更多详细信息,您可以使用它们的唯一 ID 进行搜索。例如:

15:3   error  Expected catch() or return                  promise/catch-or-return

这里警告的id是promise/catch-or-return。谷歌搜索“eslint promise/catch-or-return”发现 a plugin for ESLint将警告描述为:

Enforces the use of catch() on un-returned promises

你得到这个是因为你有一个从 then 返回的 promise ,但你永远不会 returncatch 可能的错误。

第二个警告:

15:69  error  Each then() should return a value or throw  promise/always-return

来自同一个 ESLint 插件,描述如下:

Return inside each then() to create readable and reusable Promise chains.

它要求您在 then 调用的每个函数中返回一个值,即使您没有任何特殊内容要发送到下一个 promise 链也是如此。

您可以像这样解决这两个问题:

admin.database().ref('/messages').push({original: original}).then(snapshot => {
res.redirect(303, snapshot.ref);
return null;
}).catch(error => {
console.error(error);
res.error(500);
});

注意 then block 现在返回 null,catch 用于从 then 返回的 promise 以捕获错误并发送错误回复客户。

关于javascript - ESLint 错误尝试部署函数 Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48582278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com