Sun's blog Sun's blog
首页
  • HTML
  • CSS
  • JavaScript基础
  • JavaScript高级
  • Git
  • Webpack
  • Vite
  • Vue
  • React
  • Node

    • Node基础
    • Nest
  • Flutter基础

    • 00.Dart环境搭建
    • 01.Dart入口注释变量常量命名规则
    • 02.Dart的数据类型详解int double String bool List Maps
    • 03.Dart运算符 条件表达式 Dart类型转换
    • 04.Dart循环语句 for while do while break continue多维列表循环
    • 05.Dart 集合类型List Set Map详解 以及循环语句 forEach map where any every
  • Go基础

    • Go语言基础
  • mongodb

    • mongodb
    • mongoose
  • mysql

    • mysql
    • sequelize
  • redis

    • redis
  • Linux
  • Nginx
  • 学习方法

    • 费曼学习法
    • 笔记方法
    • 提高学习效率的策略
    • 提高记忆的技巧
  • 前端常用

    • 常用网站
    • 常用的前端轮子
    • 面试问题
    • Markdown
  • 友情链接

    • 友情链接
  • 日语
  • 英语

    • 国际音标
    • 新概念第一册
  • 小滴课堂

    • 后端项目
    • 前端项目
    • 后台管理
    • Nuxt的基础使用
    • Linux安装环境
    • Node基础
GitHub (opens new window)

Sun Tang

何以解忧,唯有不断学习变强,强大才可以无惧一切!
首页
  • HTML
  • CSS
  • JavaScript基础
  • JavaScript高级
  • Git
  • Webpack
  • Vite
  • Vue
  • React
  • Node

    • Node基础
    • Nest
  • Flutter基础

    • 00.Dart环境搭建
    • 01.Dart入口注释变量常量命名规则
    • 02.Dart的数据类型详解int double String bool List Maps
    • 03.Dart运算符 条件表达式 Dart类型转换
    • 04.Dart循环语句 for while do while break continue多维列表循环
    • 05.Dart 集合类型List Set Map详解 以及循环语句 forEach map where any every
  • Go基础

    • Go语言基础
  • mongodb

    • mongodb
    • mongoose
  • mysql

    • mysql
    • sequelize
  • redis

    • redis
  • Linux
  • Nginx
  • 学习方法

    • 费曼学习法
    • 笔记方法
    • 提高学习效率的策略
    • 提高记忆的技巧
  • 前端常用

    • 常用网站
    • 常用的前端轮子
    • 面试问题
    • Markdown
  • 友情链接

    • 友情链接
  • 日语
  • 英语

    • 国际音标
    • 新概念第一册
  • 小滴课堂

    • 后端项目
    • 前端项目
    • 后台管理
    • Nuxt的基础使用
    • Linux安装环境
    • Node基础
GitHub (opens new window)
  • 小滴全栈

    • 后端实战
    • 前端实战
    • 后台管理
    • Nuxt的基础使用
    • Linux安装环境
    • Node基础
      • Node基础
        • 1. 创建 Node 基础环境
        • 2. 配置Sequelize框架
  • 前端项目
  • 小滴全栈
Sun
2024-07-23

Node基础

# Node基础

# 1. 创建 Node 基础环境

# 1.1 创建 server 文件夹

创建 server 文件夹,在文件夹内打开终端

# 1.2 初始化node项目

npm init -y // 初始化node依赖
1

# 1.3 安装依赖

npm i cors // 跨域库
npm i express // express服务库
1
2

# 1.4 创建 app.js

const express = require('express');
const app = express();
const cors = require('cors');

app.use(cors());

app.get('/test', (req, res) => {});

app.listen(8081, () => {
  console.log('服务启动在:http://127.0.0.1:8081');
});

1
2
3
4
5
6
7
8
9
10
11
12

创建完之后,在根路径下执行 node app.js 运行是否正常

# 2. 配置Sequelize框架

# 2.1 安装依赖

npm i sequelize@6.24.0 // sequelize
npm i mysql2@2.3.3  // mysql数据库安装驱动程序
1
2

# 2.3 配置

# 2.3.1 根路径下创建 config/sequelize.js

config/sequelize.js

# 2.3.2 链接数据库

config/sequelize.js

const { Sequelize } = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'xxx',
  dialect: 'mysql'
});
database // 数据库名字
username // 用户名
password // 密码
host   // 数据库运行的服务器ip地址
dialect // 数据库类型
1
2
3
4
5
6
7
8
9
10
# 2.3.3 测试连接

config/sequelize.js

const { Sequelize } = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'xxx',
  dialect: 'mysql'
});

(async function () {
  try {
    await sequelize.authenticate();
console.log('数据库链接成功'); } catch (error) {
console.error('数据库链接失败:', error); }
})()
1
2
3
4
5
6
7
8
9
10
11
12

根路径下执行 node config/sequelize.js 如果连接成功就是正常

# 3. 数据库模型

# 3.1 创建模型

models/Account.js

const { Sequelize, DataTypes } = require('sequelize');
const sequelize = require('../config/sequelize.js');

const Account = sequelize.define(
  'Account',
  {
    // 定义模型属性、数据库的字段
    id: {
      autoIncrement: true,
      type: DataTypes.BIGINT,
      allowNull: false,
      primaryKey: true
    },
    username: {
      type: DataTypes.STRING(255),
      allowNull: true,
      comment: '名字'
    },
    age: {
      type: DataTypes.BIGINT,
      allowNull: true,
      comment: '年龄'
    },
    hobby: {
      type: DataTypes.STRING(255),

      allowNull: true,
      comment: '爱好'
    },
    gmt_create: {
      type: DataTypes.DATE,
      allowNull: true,
      defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
      comment: '创建时间'
    },
    gmt_modified: {
      type: DataTypes.DATE,
      allowNull: true,
      defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP')
    }
  },
  {
    // 定义其他参数类型
    tableName: 'account',
    timestamps: false // 禁用自动创建时间戳字段
  }
);

(async () => {
  await Account.sync({ alter: true });
  console.log('成功同步:Account');
})();

module.exports = Account;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 3.2 模型同步
Account.sync() // 如果表不存在,则创建该表,否则,不执行任何操作
Account.sync({ force: true }) // 将创建表,如果表已经存在,则将其首先删除
Account.sync({ alter: true }) // 这将检查数据库中表的数据,然后在表中进行必要的更改以使其与模型匹配
1
2
3
# 3.3 简单的INSERT操作
const express = require('express');
const app = express();
const cors = require('cors');
const Account = require('./models/Account')

app.use(cors());

app.get('/account', async (req, res) => {
 	const dbRes = await Account.create({ username: '老六',age:30,hobby:'发呆' })
    res.send('插入成功') });
});

app.listen(8081, () => {
  console.log('服务启动在:http://127.0.0.1:8081');
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
编辑 (opens new window)
上次更新: 2024/07/24, 05:44:37
Linux安装环境

← Linux安装环境

最近更新
01
05.Dart 集合类型List Set Map详解 以及循环语句 forEach map where any every
05-08
02
04.Dart循环语句 for while do while break continue多维列表循环
05-08
03
03.Dart运算符 条件表达式 Dart类型转换
05-08
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Sun Tang | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式