zoukankan      html  css  js  c++  java
  • 绝版Node--Sequlize搭建服务(Node全栈之路)

    绝版Node--Sequlize搭建服务(Node全栈之路)






    参考资料:https://itbilu.com/nodejs/npm/VkYIaRPz-.html

    准备环境:Mysql,Node

    前沿:

      为大家介绍一下,什么是sequlize,ssequlize是基于node的一个ORM框架,如果你有Java 或者是C#开发经验,我们在操作数据库的时候会用到一些ORM映射数据库的表实体到我们程序中的实体类,这里我们称之为关系对象。

      这里说几种ORM框架,NET中我们有EF(微软)、NHibernate(开源),Java中我们有Hibernate,同样Node的出现,它也有自己的ORM,那就是sequlize,它的出现,大大简化了繁杂的sql语句操作数据库,使得我们编程更加高效,这里ORM的出现,其优点可不是为了让你少些SQL的,它会提供他自己的一套处理O-R-M 之间的关系,这样使得我们处理一些复杂数据的时候,非常容易。

      对于老鸟来说:ORM上手起来是非常容易的,首先我们从它的基本增删该查讲起,其次我们掌握基本增删该查后,会学习表之间的关系如何创建,(每一个ORM都有他自己的一套指定表关系的模式),本人这里熟悉EF,了解NHibernate,刚刚掌握Sequlize,指定表关系也无非就是,A表B表C表之间的关系,一对多,多对多,一对一。

      对于每一个ORM来说,掌握了这些,就可以开发使用了。

      正式开始||

    首先我们要创建一个本地文件夹

     

    用Dos定为到这个文件夹,执行npm init 将其创建成为一个Node包

    然后在这个包里安装sequlize,具体操作如下截图

      然后在你刚创建的文件夹里创建一个index.js文件,我们今天所有的代码,都将在index.js里写,并且index.js也是我们的一个主入口文件。

      基本增删改查(index.js文件操作)

     
     1 //引入框架
     2 
     3 const Sequelize = require('sequelize');
     4 //创建ORM实例
     5 const sequelize = new Sequelize('api', 'root','',
     6  {
     7  'dialect': 'mysql', // 数据库使用mysql
     8  }
     9 );
    10  
    11  
    12 sequelize
    13 .authenticate()
    14 .then(()=>{
    15     console.log('链接成功');
    16 })
    17 .catch((error)=>{
    18     console.log('链接失败'+error);
    19 })

     这里需要连接我们的MYSQL数据库

     当我们连接好数据库后,需要创建模型,之后sequlize会自动将你创建的模型映射到数据库

    下面我们就可以用User这个对象 来对数据库中的user表经行增删改查的操作了

    我们真的完事大吉了吗?如果你这么认为,那就错了!.....我们需要把模型同步到数据库里

    那么现在你得数据库就会自动创建好一张表

     那么现在就可以真正经行增删该查的操作了

    不过这里需要强调一点:

     进入增删该查:

    这里我需要彻头彻尾的粘贴一下代码,不然读者该骂了

     1 //引入框架
     2 const  Sequelize = require('sequelize');
     3 //创建ORM实例 api是我的数据库名字 root登录数据库名 ‘’表示登录我的数据库不需要密码
     4 const sequelize = new Sequelize('api', 'root','',
     5   {
     6     'dialect': 'mysql',  // 数据库使用mysql
     7   }
     8 );
     9 
    10 sequelize
    11 .authenticate()
    12 .then(()=>{
    13     console.log('链接成功');
    14 })
    15 .catch((error)=>{
    16     console.log('链接失败'+error);
    17 })
    18 
    19 //模型的创建
    20 //1,用代码定义模型,然后同步到数据库中
    21 //2,通过已有数据库生成ORM model
    22 
    23 //自己看的知识点:数据验证,要求,age不能为负数!  //这里我创建了三个模型对象 ,会在数据中生成三张表
    24 const User = sequelize.define('user',{
    25     name:Sequelize.STRING,//定义表结构 name 为string类型
    26     age:Sequelize.INTEGER,//定义表结构
    27 });
    28 
    29 const Message = sequelize.define('message',{
    30     text:Sequelize.STRING,//定义表结构
    31 });
    32 
    33 const Image = sequelize.define('image',{
    34     url:Sequelize.STRING,//定义表结构
    35 });
    1 //同步所有的model和所有关系
    2 sequelize.sync();

    下面在做修改,修改要加id,不加id会报错

     下面我们在做查询操作

    1 // 单条数据查询
    2 SELECT `id`, `first_name` AS `firstName`, `lastName`, `createdAt`, `updatedAt` FROM `user` AS `user` WHERE `user`.`id` = 1
    3 
    4 // 多条数据查询
    5 SELECT `id`, `first_name` AS `firstName`, `lastName`, `createdAt`, `updatedAt` FROM `user` AS `user`

      在这里再补充点查询 ,(如果我们想查询部分字段怎么半)

     1 // User.findOne().then(u=>{
     2 //     console.log('==========================');
     3 //     console.log(u.dataValues);
     4 //     console.log('==========================');
     5     
     6 // });
     7 // //第二查询
     8 User.findAll({
     9     where:{id:2},
    10     attributes:['lastName']//查询部分字段,即不必查询出来你表中所有的字段 类似于 select xx,cc from table
    11 })
    12 .then((users)=>{
    13     console.log('==========================');
    14     console.log(JSON.stringify(users));
    15     console.log('==========================');
    16 });
    17 // //第三查询
    18 // User.findOne({where:{id:2}})
    19 // .then((users)=>{
    20 //     console.log('==========================');
    21 //     console.log(JSON.stringify(users));
    22 //     console.log('==========================');
    23 // });
    24 
    25 // //第四查询
    26 // User.findOne({where:{id:3}})
    27 // .then((u)=>{
    28 //     console.log('==========================');
    29 //     // console.log(u);
    30 //     console.log('==========================');
    31     
    32 // });

    最后我们说删除

    好了,记住,删除叫destroy!!!

    基本增删该查我们就到这里,下一篇文章讲一下,如何实现多表之间的对应关系,一对一hasOne 一对多 belong to hasManay .

    ..如果有问题的朋,欢迎加我微信:jkxx123321

      

      

  • 相关阅读:
    hdu acm 2844 Coins 解题报告
    hdu 1963 Investment 解题报告
    codeforces 454B. Little Pony and Sort by Shift 解题报告
    广大暑假训练1 E题 Paid Roads(poj 3411) 解题报告
    hdu acm 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
    hdu acm 1114 Piggy-Bank 解题报告
    poj 2531 Network Saboteur 解题报告
    数据库范式
    ngnix 配置CI框架 与 CI的简单使用
    Vundle的安装
  • 原文地址:https://www.cnblogs.com/gdsblog/p/7218940.html
Copyright © 2011-2022 走看看