我有這個后端(nodeJS),我在異步函式中接收到 IdToken
app.js 中的路由
app.post("/login", login.login );
登錄.js
exports.login = async (req, res) => {
const token = req.body.token;
const client = new OAuth2Client(googleID, googleSecret);
const ticket = client.verifyIdToken({
idToken: token,
audience: googleID
});
await ticket.then(data => {
User.findOne().and([{
"email": data.payload.email
}])
.exec((err, user) => { //code}
但是我在某個地方讀到了不建議混合 async、.then 和 .exec 我的代碼是否有問題或改進它的建議?這會導致瓶頸嗎?
uj5u.com熱心網友回復:
這完全取決于個人喜好,兩者都做同樣的事情。在更大的專案中事情開始變得復雜,這就是簡單性比嵌套意大利面條代碼更方便的地方。
我總是更喜歡async/await它,因為它很容易,而且我可以輕松避免嵌套問題以及try/catch.
你的代碼是這樣的。
exports.login = async (req, res) => {
const token = req.body.token;
const client = new OAuth2Client(googleID, googleSecret);
const ticket = await client.verifyIdToken({
idToken: token,
audience: googleID
});
const user = await User.findOne({
"email": ticket.payload.email
});
正如你所看到的,這么多的清潔和添加try/catch捕捉錯誤
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/456167.html
