Expressjs MySql sequelizejs

Expressjs MySql sequelizejs

Express介紹

Express是Nodejs中開源的一個(gè)WEB快速開發(fā)框架,具體參考 Expressjs

Express中內(nèi)置的功能

  • 可以用中間件來處理HTPP請(qǐng)求
  • 可以用中間件來處理模板渲染
  • 可以定義路由來指定不同的HTTP請(qǐng)求如果響應(yīng)

sequelizejs介紹

sequelizejs是一個(gè)nodejs中的ORM映射框架,做過JAVA開發(fā)的都知道Hibernate,MyBatis。sequelizejs 和其類似

sequelizejs 需要定義一個(gè)MySQL鏈接,然后實(shí)例化一個(gè)sequelize,在每個(gè)Model中引入sequelize實(shí)例即可定義Model。具體參考 sequelizejs 文檔

構(gòu)建一個(gè)Expressjs+Mysql+sequelizejs網(wǎng)站

前提準(zhǔn)備

nodeejs expressjs 安裝

1.安裝Nodejs 安裝Nodejs有很多種方式,常見的一種是從官網(wǎng)下載對(duì)應(yīng)的安裝文件 下載地址 建議下載LTS版本

QQ圖片20171130154738.png

第二種方式可以采用nvm(Linux,Mac os),gvm(Windows)等多版本工具來安裝。

2.安裝Expressjs + Express generator

#全局安裝Express
npm install Express -g
#全局安裝Express Generator Express項(xiàng)目生成工具
npm install -g express-generator
搭建Express項(xiàng)目

使用Express Generator來生成項(xiàng)目

#生成視圖模板為 ejs的項(xiàng)目
express --ejs MyPro
#安裝node依賴
cd MyPro && npm install
添加Sequelizejs
npm install --save sequelize

1.在項(xiàng)目目錄結(jié)構(gòu)中增加model的目錄 并在其下新建一個(gè)db.js 內(nèi)容如下

Sequelize = require('sequelize');
//var models=module.exports={};
var sequelize
    =
    new Sequelize
    ('dbName', 'dbUser', 'userPassword',
        {host : 'localhost', port : '3306', dialect : 'mysql',timezone: '+08:00' });

        
module.exports=sequelize;
//timezone 設(shè)置時(shí)區(qū)為東8區(qū)

2.添加一個(gè)新的Model實(shí)體 Manager.js 內(nèi)容如下

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

var Manager = db.define(
    'manager',
    {
        id:{
            filed:'id',
            primaryKey:true,
            type:Sequelize.BIGINT,  
            allowNull: false  
        },
        userName: {  
            field: 'username',  
            type: Sequelize.STRING,  
            allowNull: false  
        },  
        password: {  
            field: 'password',  
            type: Sequelize.STRING,  
            allowNull: false  
        }, 
        createTime: {  
            field: 'createTime',  
            type: Sequelize.DATE,  
            allowNull: false  
        }, 
    },
    {  
        tableName: 'manager',  
        timestamps: false,  
        freezeTableName: true  
    }  
);

module.exports = Manager;

定義Model如何寫???具體參考sequelizejs的官方文檔,文檔需耐心點(diǎn)。

3.定義一個(gè)接口來對(duì)Manager進(jìn)行查詢

在項(xiàng)目目錄router中的index.js中添加以下方法

router.get("/queryManager",function(req,res,next){

  manager.findAll().then(function(managerList){
    res.json({"managerlist":managerList});
  }).catch(function(error){
    res.json({"error":error});
  });

});

這里簡(jiǎn)單期間定義了一個(gè)簡(jiǎn)單的Get請(qǐng)求,用于獲取所有的Manager表中的數(shù)據(jù),然后以JSON的形式返回。

總結(jié)

在真是的項(xiàng)目開發(fā)中,遇到過很多所謂的坑,但最后發(fā)現(xiàn) 官方文檔都有介紹過。

最后給大家要給小小的建議。多看官方文檔,避免進(jìn)坑。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容