资讯专栏INFORMATION COLUMN

node + express学习二(数据库)

Jiavan / 2611人阅读

摘要:在学习一里面搭建了一个简单的项目,这一节加进数据库新建连接确保已经安装好和启动数据库停止用注意要用管理员权限运行打开新建一个连接连接名随便取,我这里设置了免密。

在学习一里面搭建了一个简单的项目,这一节加进数据库Mysql

1、navicat新建连接

确保已经安装好Mysql和Navicat

1、启动数据库:net start mysql(停止用 net stop mysql
注意:要用管理员权限运行

2、打开navicat新建一个连接

连接名随便取,我这里设置了免密。可以不输密码,输好后单击确定,单击test打开连接

现在就可以在test里面新建数据库

如图:我建了一个额数据库叫lyhexpress,里面有张表user,id要设为自增长

2、sequelize 处理数据库

1、打开项目安装sequelize:npm install sequelize --save,需同时安装mysql2: npm install mysql2 --save

2、根目录下新建文件夹model, model下新建db.js,用于连接数据库:db.js:

Sequelize = require("sequelize");
var sequelize
    =
    new Sequelize
    ("lyhexpress", "root", "",
        {host : "localhost", port : "3306", dialect : "mysql",timezone: "+08:00", operatorsAliases: false });


module.exports=sequelize;

3、 model 下新建表模型user.js

var db = require("./db");

var user = db.define(
    "user",
    {
        id:{
            filed:"id",
            primaryKey:true,
            type:Sequelize.BIGINT,
            allowNull: true //此属性是自增长的,需设置成true
        },
        name: {
            field: "name",
            type: Sequelize.STRING,
            allowNull: false
        },
        age: {
            field: "age",
            type: Sequelize.INTEGER,
            allowNull: false
        }
    },
    {
        tableName: "user",
        timestamps: false,
        freezeTableName: true
    }
);
module.exports = user;   

4、修改routes/users.js,写一个查询接口:

var express = require("express");
var router = express.Router();

var db = require("../model/db");

var user = require("../model/user");
/**
 * 查询列表页
 */
router.get("/",function(req,res,next){
    user.findAll().then(function(userList){
        res.json({"userlist":userList});
    }).catch(function(error){
        res.json({"error":error});
    });
});

module.exports = router;  

访问结果:

现在一条数据都没有,再写一个插入数据的接口,继续修改routes/users.js

/**
 * 插入数据
 */
router.post("/add",function(req,res,next){
    var name = req.body.name;
    var age = req.body.age;
    db.transaction( t => {
        return user.create({  //创建一条数据
            name: name,
            age: age
        }).then(result => {
            res.json({
                status:true,
                msg:"注册成功"
            })
        }).catch(err => {
            console.log(`注册失败${err}`);
            return;
        })
    })
});

现在就可以通过"http://127.0.0.1:8088/users/add"添加数据

上一篇:项目搭建链接描述

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/48103.html

相关文章

  • 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(

    摘要:吐完槽,还是开始第十二部分的改动吧,这是开始涉及到数据库了,原文用我用改动就比较大了。后篇使用开发一个角色投票应用的学习过程三 前篇 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(一) 这篇主要讲一下waterline的初始化,原文用的是mongoose 原文第十二步 一下子就到十二步了,因为原文件中react部分的代码本来就是用E...

    jsdt 评论0 收藏0
  • Node图文教程(第四章:express

    摘要:中文官网快速入门安装项目中引入得到服务器实例绑定服务器接受请求事件,并且添加处理回调函数绑定服务端口,启动服务器运行项目利用框架可以减少我们的代码量,比起之前使用核心模块构建服务器代码排版更直观。Express框架是一款简洁而灵活的node.js web应用框架。前面我们自己手动创建服务器在Express中就是一个API的事情,这就使得我们更加注重业务的功能和开发效率上,不必纠结过多底层的事...

    韩冰 评论0 收藏0
  • 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(一

    摘要:本项目是对使用开发一个角色投票应用的学习过程。到这里为止没有遇到多大的坑,最多的往往是拼写错误引起的问题,唯一由于拼写导致,但不提示错误的是我打成了运行的时候服务器一直没有响应,找了好久才找到这个错误后篇使用开发一个角色投票应用的学习过程二 本项目是对使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程。 英文原文:Create a char...

    loonggg 评论0 收藏0
  • 前端每周清单第 41 期 : Node 与 Rust、OpenCV 的火花,网络安全三事

    摘要:的网站仍然使用有漏洞库上周发布了开源社区安全现状报告,发现随着开源社区的日渐活跃,开源代码中包含的安全漏洞以及影响的范围也在不断扩大。与应用安全是流行的服务端框架,本文即是介绍如何使用以及其他的框架来增强应用的安全性。 showImg(https://segmentfault.com/img/remote/1460000012181337?w=1240&h=826); 前端每周清单专注...

    syoya 评论0 收藏0
  • 重学前端学习笔记(十八)--通过四则运算的解释器快速理解编译原理

    摘要:实现状态机可能产生四种输入元素,其中只有两种,状态机的第一个状态就是根据第一个输入字符来判断进入了哪种状态用函数表示状态,用表示状态的迁移关系,用值表示下一个状态。运行状态机输出结果四语法分析语法分析根据每一个产生式来写一个函数。 笔记说明 重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点...

    Crazy_Coder 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<