使用node的Hapi框架搭建后台(三)——通过sequelize插件使用mysql

Step 1 :安装依赖

npm i sequelize-cli -D
npm i sequelize
npm i mysql2

Step 2:初始化 sequelize

在 node_modules 文件夹下的 .bin 目录下执行:

node_modules/.bin/sequelize init

Step 3:配置数据库环境

在 .bin 目录的 config 下创建 config.js 文件:

if(process.env.NODE_ENV === 'production'){
  require('env2')('./prod.env');
}else{
  require('env2')('./.env');
}

const { env } = process;
module.exports = {
  "development": {
    "username": env.MYSQL_USERNAME,
    "password": env.MYSQL_PASSWORD,
    "database": env.MYSQL_DB_NAME,
    "host": env.MYSQL_HOST,
    "port": env.MYSQL_PORT,
    "dialect": "mysql",
    "operatorsAliases": false,
  },
  "production": {
    "username": env.MYSQL_USERNAME,
    "password": env.MYSQL_PASSWORD,
    "database": env.MYSQL_DB_NAME,
    "host": env.MYSQL_HOST,
    "port": env.MYSQL_PORT,
    "dialect": "mysql",
    "operatorsAliases": false, //此参数为自行追加,解决高版本 sequelize 连接警告
  }
}

Step 4:新建数据库

node_modules/.bin/sequelize db:create

Step 5:创建迁移

node_modules/.bin/sequelize migration:create --name create-stores-table
node_modules/.bin/sequelize migration:create --name create-orders-table
node_modules/.bin/sequelize migration:create --name create-takers-table

Step 6:在迁移文件内创建表单和删除表单

在 .bin 目录下的 migrations 目录可以看见刚刚创建的 3 个迁移文件,并将该文件做以下修改:

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => queryInterface.createTable(
    'stores',
    {
      id: {
        type: Sequelize.INTEGER,
        autoIncrement: true,
        primaryKey: true,
      },
      name: {
        type: Sequelize.STRING,
        allowNULL: false,
      },
      password: {
        type: Sequelize.STRING,
        allowNULL: false,
      },
      longitude: {
        type: Sequelize.STRING,
        allowNULL: false,
      },
      latitude:{
        type: Sequelize.STRING,
        allowNULL: false
      },
      phone: {
        type: Sequelize.STRING,
        allowNULL: false
      },
      created_at: Sequelize.DATE,
      updated_at: Sequelize.DATE,
    }
  ),

  down: (queryInterface, Sequelize) => queryInterface.dropTable('stores')
};

Step 7:执行迁移

node_modules/.bin/sequelize db:migrate

你可能感兴趣的:(node.js,Hapi,记录)