zoukankan      html  css  js  c++  java
  • node.js后端之sequelize

    node.js后端之sequelize

    简单来说,node.js是运行在后端的javascript,后端肯定需要访问数据库,而今天我们要介绍的对象就是可以让你不用再痛苦的写sql语句,提高效率的ORM框架——sequelize。

    准备工作

    安装

    首先新建一个文件夹sequelize_demo,打开终端(默认已经有node环境),输入npm init,这会初始化此文件夹并生成一个.json文件,一路回车默认即可。

    接下来安装express框架:

    $ npm install express --save
    

    然后安装sequelize框架和mysql驱动:

    $ npm install --save sequelize
    $ npm install --save mysql2
    

    ok,安装完成

    创建文件

    解析来创建我们需要用到的文件,文件目录如下~

    连接数据库

    接下来开始数据库的连接,打开db.js

    //db.js
    var Sequelize = require('sequelize');
    
    //四个参数分别是 数据库名称,用户名,密码,配置
    
    module.exports = new Sequelize('farmer', 'root', '123456', { //换成自己的数据库
        host: 'localhost', // 数据库地址
        dialect: 'mysql', // 指定连接的数据库类型
        pool: {
            max: 5, // 连接池中最大连接数量
            min: 0, // 连接池中最小连接数量
            idle: 10000 // 如果一个线程 10 秒钟内没有被使用过的话,那么就释放线程
        }
    });
    

    模型文件user.js,这个模型用来和数据库里的表对应,一个模型就代表一个表格,我们编写好模型,可以让sequelize为我们自动创建数据库表,非常方便。使用define函数来创建模型

    // user.js
     var Sequelize = require('sequelize');
    var sequelize = require('./db');
     
    // 创建 model
        const User = sequelize.define('user', {
            userName: {
                type: Sequelize.STRING, // 指定值的类型
                field: 'user_name' // 指定存储在表中的键名称
            },
            // 没有指定 field,表中键名称则与对象键名相同,为 email
            email: {
                type: Sequelize.STRING
            }
        }, {
            // 如果为 true 则表的名称和 model 相同,即 user
            // 为 false MySQL创建的表名称会是复数 users
            // 如果指定的表名称本就是复数形式则不变
            freezeTableName: false
        });
    //如果不存在就创建此表
     var user = User.sync({ force: false });
    
    // 添加新用户
    exports.addUser = function(userName, email) {
        // 向 user 表中插入数据
        return User.create({
            userName: userName,
            email: email
        });
    };
    

    然后进入终端,启动服务 node app.js,打开数据库会发现已经有表格创建好了。最后的createdAt和updatedAt是sequelize自动添加的,当然不想要可以这样:

      // 不要添加时间戳属性 (updatedAt, createdAt)
      timestamps: false,
    

    接下来编写测试函数testUser.js,这里我们就可以愉快的使用sequelize封装好的函数来操作啦,和sql语句说拜拜!

    常用的函数如 find,findAll,create,详细可看官方文档https://sequelize.org/v5/manual/models-usage.html

    //testUser.js
    var user = require('./user'); //引入模型
     
    // 添加用户
    user.addUser('jack', 'jack@163.com').then(function() {
        // 查询新添加的用户
        return user.findOne({ where: { user_name: userName }}) 
        
    }).then(function(user) {
        console.log('****************************');
        console.log('user name: ', user.userName);
        console.log('user email: ', user.email);
    });
    

    进入终端,运行testUser

    node testUser.js

    打开数据库就会发现数据已经插入到数据库中了~

  • 相关阅读:
    Swoole 学习笔记 03
    MySQL 索引概念
    MySQL使用存储过程创建百万级别测试数据
    MySQL 慢日志查询的设置
    Hyper中的 Request和Response
    PHPStorm deployment 工具的使用
    Hyperf 命令行
    Hyperf 事件机制
    Hyperf jsonrpc 服务的搭建
    PHPstorm的使用
  • 原文地址:https://www.cnblogs.com/lyc1226/p/12113199.html
Copyright © 2011-2022 走看看