Nodejs数据库逆向

一、概述

使用 sequelize-auto 逆向生成 models

软件版本
nodejsv14.17.1

二、安装依赖

# 安装驱动
npm i mysql2 sequelize sequelize-cli -S
# 安装逆向工具 - 开发环境
npm i  sequelize-auto -D

package.json中的script添加命令:

"scripts": {
  "models": "node sequelize-auto/auto.js"
}

二、生成模型

cd app
# echo "sequelize-auto" >> .gitignore
mkdir sequelize-auto && cd sequelize-auto

创建app/sequelize-auto/config.js

cat >> config.js <<eof
module.exports = {
  host : '127.0.0.1',
  user : 'root',
  password : '123456',
  database : 'dbname',
  port: 3306,
  dialect: 'mysql'
}
eof

创建app/sequelize-auto/auto.js

cat >> auto.js <<eof
const SequelizeAuto = require('sequelize-auto')
const { host, user, password, database, dialect, port } = require('./config')

const options = {
  host,
  dialect,
  directory: 'db/models',  // 指定输出 models 文件的目录
  port,
  additional: {
    timestamps: false
  }
}
const auto = new SequelizeAuto(database, user, password, options)

auto.run(err => {
  if (err) throw err
})
eof

生成Model

# 将自动在 db/models 下生成每个表对应的 Model,并生成 init-models.js
npm run models

三、测试使用

  • 1.根目录创建全局配置文件conf.js

    cat >> conf.js <<eof
    module.exports = {
        mysql: {
            host: '127.0.0.1',
            port: '3306',
            db: 'res',
            user: 'root',
            pwd: '123456',
            dialect: 'mysql',
            pool: {
                min: 1,
                max: 50,
                acquire: 30000,
                idle: 10000,
            }
        }
    }
    eof
    
  • 2.创建app/db/db.js

    # 创建db.js
    cat >> db.js <<eof
    const Sequelize = require('sequelize')
    const initModels = require('../db/models/init-models')
    const { host, db, user, pwd,  dialect } = require('../conf').mysql
    const sequelize = new Sequelize(db, user, pwd, { host, dialect: dialect, define: { timestamps: false } })
    
    module.exports = initModels(sequelize)
    eof
    
  • 3.编写测试文件

    mkdir tests
    # 创建测试文件
    cat >> db_test.js <<eof
    const db = require('../db/db')
    
    const myFun = async () => {
    	ads = await db.tbl_ads.findOne({ });
        console.log(ads.a_website);
    }
    
    myFun();
    eof
    
  • 4.执行文件

    node tests/db_test.js
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值