如何为我的nodejs项目创建mysql数据库?

xcitsw88  于 2022-11-21  发布在  Mysql
关注(0)|答案(3)|浏览(248)

这应该是真正的基本和简单的做,但我可以认真地找不到 * 任何 * 可理解的信息,如何 * 创建 * 一个简单的数据库为我的nodejs typescript项目。
我已经安装了以下带有npm的软件包:

  • mysql2基因
  • 续作
  • 续集
  • 续编 typescript

我在终端上尝试了以下命令

C:\repos\NodeNew>mysql2 -u root -p
'mysql2' is not recognized as an internal or external command,
operable program or batch file.

C:\repos\NodeNew>mysql -u root -p
'mysql' is not recognized as an internal or external command,
operable program or batch file.

C:\repos\NodeNew>node mysql2 -u root -p
module.js:538
    throw err;
    ^

Error: Cannot find module 'C:\repos\NodeNew\mysql2'
    at Function.Module._resolveFilename (module.js:536:15)
    at Function.Module._load (module.js:466:25)
    at Function.Module.runMain (module.js:676:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3

C:\repos\NodeNew>

那么,我如何创建我的数据库,以便我可以连接到它与sequelize等?

sbtkgmzw

sbtkgmzw1#

您 安装 的 工具 仅 用于 将 Node.js 应用 程序 连接 到 MySQL , 不 包括 用于 管理 MySQL 服务 器 的 命令 行 工具 。
我 假设 你 已经 安装 了 MySQL 并且 它 正在 运行 - - 你 应该 能够 在 服务 器 安装 目录 的 bin/ 目录 中 找到 它 的 mysql.exe 命令 行 客户 端 。
当 出现 MySQL 提示 符 时 , 可以 按照 以前 的 任何 说明 创建 数据 库 ; CREATE DATABASE foo; 是 它 的 要点 ( 身份 验证 和 权限 是 另 一 回事 ) 。
由于 您 使用 的 是 Windows , 您 可能 希望 了解 一下 HeidiSQL - 我 已经 有 一 段 时间 没有 使用 它 了 , 但 它 是 一 个 不错 的 图形 MySQL 管理 工具 。
您 * 也 可以 * 使用 mysql2 创建 数据 库 ( 如 下图 所 示 ) , 但 我 建议 您 使用 管理 工具 。

const mysql = require('mysql2');
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  database: 'mysql',
});
connection.query('CREATE DATABASE foo');

中 的 每 一 个

monwx1rj

monwx1rj2#

您 的 计算机 上 应该 安装 了 MySQL , 要 在 Windows 上 安装 mysql , 请 参阅 以下 页面 :MySql 当 您 在 计算机 上 启动 并 运行 MySQL 后 , 打开 命令 终端 并 执行 以下 命令 :

npm install mysql

中 的 每 一 个
现在 你 已经 下载 并 安装 了 一 个 mysql 数据 库 驱动 程序 。 Node.js 可以 使用 这个 模块 来 操作 MySQL 数据 库 :

var mysql = require('mysql');

格式
要 创建 连接 , 请 创建 文件 connection.js :

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword"
});

con.connect(function(err) {
 if (err) throw err;
  console.log("Connected!");
});

格式
要 进行 测试 , 请 保存 文件 并 运行 :

node connection.js

格式
结果 如下 :

Connected!

格式

ruyhziif

ruyhziif3#

可以 使用 beforeConnect 钩子 进行 sequelize 来 解决 , 如下 所 示 :

const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.json')[env];

const { host, port, username, password } = config;

# create sequelize instance without providing db name in config
sequelize = new Sequelize('', username, password, config);

sequelize.beforeConnect(async (config) => {
     const connection = await mysql.createConnection({ host: host, port: port, user: username, password: password });
     await connection.query(`CREATE DATABASE IF NOT EXISTS \`${process.env.DB_NAME}\`;`);
     config.database = process.env.DB_NAME;
});

中 的 每 一 个
Config.json 文件 包含 不同 数据 库 的 配置 , 如

{
  "development": {
    "username": "root",
    "password": "init@123",
    "host": "mysqldb",
    "dialect": "mysql"
  },
  "test": {
    "username": "root",
    "password": null,
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "production": {
    "username": "root",
    "password": null,
    "host": "127.0.0.1",
    "dialect": "mysql",
  }
}

格式
在 sequelize beforeConnect 挂 接 中 连接 和 创建 数据 库 ( 如果 需要 ) 后 提供 数据 库 名称

相关问题