【问题标题】:Is it possible to use express.js to build rest api in frontend?是否可以使用 express.js 在前端构建 rest api?
【发布时间】:2021-12-25 02:27:29
【问题描述】:

计划是使用 react.js 构建 web 应用程序,并使用 express.js 构建后端,特别是使用 rest api 连接到 mySQL 数据库....问题是

  1. 对于身份验证,我的主管不希望我将密码存储在任何地方,而是建议我使用我们用来连接到 mySQL 数据库的用户名和密码来构建身份验证。例如,当我尝试使用 mysqlCreateConnection 方法建立连接时,有一个部分我必须填写 IP 地址和用户名和密码。问题是如果我这样做,当用户注销时,后端和数据库之间的连接将断开......

可以在前端使用 mySQL createconnection 吗?所以每当用户登录时,它会直接从前端连接到数据库吗?一旦创建连接,然后使用后端rest api?如果这可行,我假设其余的 api 必须使用与前端相同的 url 托管,因为我们在前端建立了与 mySQL 数据库的连接......但是如果我们再次这样做,它不会破坏目的后端?这意味着任何人都可以登录到前端并在后端更改他们想要的任何内容?

所以结果会是这样的

  1. 在前端。用户使用mySQL工作台用户名和密码登录,然后该用户名和密码将填写mysql createconnection方法(该方法写在前端)。然后它将尝试连接到数据库。

  2. 用户登录成功

  3. 用户填写一个关于产品的表格并点击提交,这个数据被发送到我们的rest api,mySQL数据库添加数据。

【问题讨论】:

  • 你想制作类似this的东西吗?
  • @The_flash 不,这不是我们想要做的......我们正在尝试构建一个不存储密码或用户名的身份验证系统,特别是我们想要构建一个身份验证系统基础我们在mySQL workbench中创建的账号,当连接成功后,我们就登录用户。
  • 好的,你仍然需要后端连接到数据库。在每次登录请求时,您都需要使用 db 进行身份验证。从那里,我建议您将 pwd 和用户名的加密版本发回,以便在 JWT 中做出反应以提出进一步的请求。顺便说一句,这都是非常糟糕的做法。

标签: mysql rest express frontend backend


【解决方案1】:

here are examples of router-token and router-session within the app if you are at express.js.

db.js

const mysql = require("mysql2")
const config = require("../../config/config.json").DB

module.exports = mysql.createPool({
    host: config.host,
    user: config.username,
    password: config.password,
    database: config.database,
    waitForConnections: true,
    connectionLimit: 100,
    queueLimit: 0,
    multipleStatements: true
})

db.fun.js

const db = require("./db").promise()

let query = async(sql, data) => {
    try {
        let d = await db.query(sql, data);
        return d[0];
    } catch (err) {
        console.log(`EDB: ./app/database/db.fun.js 8rows \n${err}`);
        return { err: 1, errdata: err };
    }
}

module.exports = {
    query: query
}

导入查询

(async function(){

    const { query } = require("../database/db.fun");
    let user = await query("SELECT * FROM users",[]);
     
    console.log(user)

})();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-05
    • 2021-02-02
    • 1970-01-01
    • 2017-09-28
    • 2015-04-23
    • 2021-10-31
    • 1970-01-01
    • 2017-10-25
    相关资源
    最近更新 更多