javascript - 如何使用axis.get到Api网关检查用户是否存在于数据库中?

标签 javascript node.js authentication axios aws-api-gateway

我正在尝试编写,当我单击登录时,将检查用户名是否存在于数据库中。

有没有办法编写一个包含 axios.get(URL).then() 的函数,以便它能给我一个 bool 结果?如果用户名存在则为 true,否则为 false。

import axios from 'axios' 

function validateUser(username) {
   URL: API_GATEWAY_URL
   isExist = true;
   axios.get(url + '?username=' + username) 
   .then(response => {
     return response.json})
   .then(json => {
     if(json.data.statusCode != 200)
     { 
      isExist = false;
     }
    })
   .catch(error => console.error(error))

   return isExist;
}

但是,无论 (json.data.statusCode != 200) 是否为 true,isExist 似乎都无法改变。请帮忙,我是 JavaScript 新手。

最佳答案

发生这种情况是因为 axios.get 返回 Promise这是异步工作的。所以你的 isExist 没有变异。此外,每当您需要控制状态时,您都应该从 validateUser 返回 Promise。

您也可以使用async/await .

编辑:(以某种 react /伪代码方式的最小实现)

// api.js
import axios from 'axios' 

function validateUser(username) {
   return axios.get(url + '?username=' + username)
}
// main.js
import api from 'api'

onUserKeypress(username) {
    api.validateUser(username)
        .then(({json}) => {
            if(json.data.statusCode != 200) {
                this.form.valid = false;
                this.showError(username)};
         })
}

关于javascript - 如何使用axis.get到Api网关检查用户是否存在于数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58241399/

相关文章:

node.js - Mongoose方法返回id

node.js - Passport-google-oauth 和 Passport-google-token 有什么区别?

node.js - "could not authenticate"与 promised-mongo

javascript - 通过 YQL 加载 youtube 页面并进行身份验证

javascript - promise 链扩展

javascript - UIWebView 登录表单(iPad 应用程序)

javascript - 将 Accordion 旋转 90 度

javascript - 仅定义 mongoose 和 Schema

java - 将值从 JSP 传递给 JavaScript

javascript - Vue 3 为每个 child 添加包装器