1. npm install koa
2.npm install mysql2
3.npm nistall sequelize
为什么要使用sequelize? Sequelize是node.js中的ORM框架,适合使用node去连接关系型数据库. 同时sequelize支持异步操作
oh yeah
上代码 :
创建database文件夹,创建config.js文件
const config = { host: '127.0.0.1', database: 'gra', username: 'root', password: '123', port: 3306 } module.exports=config
在database文件夹下创建,db.js 目的是为了初始化并创建连接
const Sequelize = require('sequelize') const config= require('./config') console.log("init ...") const sequelize=new Sequelize(config.database,config.username,config.password,{ host: config.host, dialect: 'mysql', pool: { max: 5, min: 1, idle: 10000 }, logging:true }) sequelize.authenticate() .then(()=>{ console.log("连接成功") process.exit() }).catch(err =>{ console.error("连接失败 : ", err) }) //上面这段话如果可以执行成功 以后可以注释掉 module.exports = sequelize
在 database同级别目录下创建model文件夹 , 即对应数据库中的表
比如在model下创建stu.js:
const Sequelize = require("sequelize"); const sequelize = require('../database/db'); const Stu = sequelize.define('stu', { name: { type: Sequelize.STRING(255) // , // unique: true }, password: Sequelize.STRING(255), }, { freezeTableName: false, timestamps: true }); //timestamp字段,默认为true,表示数据库中是否会自动更新createdAt和updatedAt字段,false表示不会增加这个字段。 //freezeTableName,默认为true,会自动给表名表示为复数: user => users,为false则表示,使用我设置的表名 //创建表,默认是false,true则是删除原有表,再创建 Stu.sync({ force: false, }); module.exports = Stu;
此时可以在该目录下,cmd窗口使用 node stu.js 执行一下 , 看表是否创建成功
比如在model下创建deleteStu.js:
const Sequelize = require('sequelize') const sequelize=require('../database/db') const stu=require('./User') // https://blog.csdn.net/where_slr/article/details/100580730 stu.drop().then(()=>{ console.log("删除成功") }).catch( err =>{ console.error(err) })
使用node执行一下 node deleteStu.js 看是否成功删除该表.
下一次逐步介绍Sequelize的API文档,一步一步实现表的增删该查