node + express學習二(數據庫)

在學習一里面搭建了一個簡單的項目,這一節加進數據庫Mysql

1、navicat新建連接

確保已經安裝好Mysql和Navicat

1、啓動數據庫:net start mysql(停止用 net stop mysql
注意:要用管理員權限運行

2、打開navicat新建一個連接

clipboard.png

clipboard.png

連接名隨便取,我這裏設置了免密。可以不輸密碼,輸好後單擊確定,單擊test打開連接

clipboard.png

現在就可以在test裏面新建數據庫

clipboard.png

如圖:我建了一個額數據庫叫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;  

訪問結果:

clipboard.png

現在一條數據都沒有,再寫一個插入數據的接口,繼續修改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'添加數據

clipboard.png

clipboard.png

clipboard.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章