【问题标题】:Establishing database connection between node.js angular and mysql workbench在 node.js angular 和 mysql 工作台之间建立数据库连接
【发布时间】:2021-08-19 08:09:44
【问题描述】:

我正在从一个准备好的应用程序中学习并尝试建立连接,以便应用程序开始工作并保存数据。

picture of the hostname and port

我完成了连接,还用我需要的两个表创建了一个“员工数据库”

picture of the schema

服务器在 localhost 3000 上运行,前端正在侦听端口 4200。这是用于连接和创建数据库/模式的代码。

config.json

{
  "host": "localhost",
  "user": "cveto",
  "database": "employees",
  "password": "1234567"
}

database.js 创建池

const mysql = require('mysql2');

const config = require('../config/config.json');

const pool = mysql.createPool({
  host: config.host,
  user: config.user,
  database: config.database,
  password: config.password,
});

module.exports = pool.promise();

还有一些查询模型

const db = require('../util/database');

module.exports = class Employee {
  constructor(names, address, number, salary) {
    this.names = names;
    this.address = address;
    this.number = number;
    this.salary = salary;
  }

  static fetchAll() {
    return db.execute('SELECT * FROM employees');
  }

  static save(employee) {
    return db.execute(
      'INSERT INTO employees (names, address, number, salary) VALUES (?, ?, ?, ?)',
      [employee.names, employee.address, employee.number, employee.salary]
    );
  }

  static delete(id) {
    return db.execute('DELETE FROM employees WHERE id = ?', [id]);
  }
};

我只想知道如何建立连接,以便应用程序运行并将用户和新员工保存到我的数据库中。代码来自公共存储库,因此代码正在运行,现在它来自数据库或服务器连接的代码。

【问题讨论】:

  • 您永远不应该在 Web 应用程序和数据库之间建立直接连接,因为您需要将数据库凭据传输到前端,以便每个可能的攻击者都可以读取它们。通常您应该使用后端来“保护”您的数据库,并在前端和后端之间进行一些授权。 (抱歉没有回答实际问题)

标签: javascript mysql sql node.js angular


【解决方案1】:

DB.js 文件

var mysql = require('mysql');

const pool = mysql.createPool({
    connectionLimit: 100,
    host     : 'localhost',
    user     : 'root',
    password : '',
    database : '',
});


let myDb = {};

myDb.searchDataQ = (query) => {
    return new Promise((resolve, reject) => {
        pool.query(query, function (err, rows) {
            if (err) {
                reject(err);
            }
            resolve(rows)
        })
    });
};

module.exports = myDb;

要执行的其他 JS 文件

const db = require('../db/db');

function testMethod() {
    let query = 'SELECT * FROM employees';
    return new Promise(async (resolve, reject) => {
        try {
            resolve(await db.searchDataQ(query));
        } catch (e) {
            reject(0);
        }
    });
}

【讨论】:

  • 请添加更多详细信息以扩展您的答案,例如解释或文档引用。
猜你喜欢
  • 1970-01-01
  • 2019-10-20
  • 2011-01-19
  • 2018-03-17
  • 2020-02-12
  • 1970-01-01
  • 2016-07-12
  • 2015-05-21
  • 1970-01-01
相关资源
最近更新 更多