eggjs 搭建 RefulAPI(一)

本贴最后更新于 1663 天前,其中的信息可能已经水流花落

记录下使用 egg 搭配 sequlize+mysql 搭建 RefulAPI,配置篇

安装 eggjs

初始化项目

mkdir egg-example && cd egg-example
npm init egg --type=simple
npm i

具体可以参考 eggjs 官网.

安装完成目录结构如下:

.
├── README.md
├── app
│   ├── auth
│   │   └── role.js
│   ├── controller
│   │   ├── home.js
│   │   └── users.js
│   ├── domain
│   │   ├── user.js
│   │   └── userLogin.js
│   ├── middleware
│   │   ├── error_handler.js
│   │   ├── gizp_handler.js
│   │   └── jwt_session.js
│   ├── model
│   │   ├── user.js
│   │   └── userLogin.js
│   ├── public
│   ├── router
│   │   ├── router.local.js
│   │   └── router.prod.js
│   ├── router.js
│   ├── service
│   │   └── users.js
│   └── utils
│       └── util.js
├── app.js
├── appveyor.yml
├── config
│   ├── config.default.js
│   ├── config.local.js
│   ├── config.prod.js
│   └── plugin.js
├── data
│   ├── create_db_v1.0.sql
│   └── inster_db_init.sql
├── jsconfig.json
├── logs
│   └── ashop_service
│       ├── ashop_service-web.log
│       ├── common-error.log
│       ├── egg-agent.log
│       ├── egg-schedule.log
│       └── egg-web.log
├── package-lock.json
├── package.json
├── run
│   ├── agent_config.json
│   ├── agent_config_meta.json
│   ├── agent_timing_43008.json
│   ├── application_config.json
│   ├── application_config_meta.json
│   ├── application_timing_43010.json
│   ├── application_timing_92330.json
│   └── router.json
├── test
│   └── app
│       └── controller
│           └── home.test.js
└── typings
    ├── app
    │   ├── controller
    │   │   └── index.d.ts
    │   ├── index.d.ts
    │   ├── middleware
    │   │   └── index.d.ts
    │   ├── model
    │   │   └── index.d.ts
    │   └── service
    │       └── index.d.ts
    └── config
        ├── index.d.ts
        └── plugin.d.ts

安装

npm install sequlize -S

配置

// plugin.js
exports.sequelize = {
  enable: true,
  package: 'egg-sequelize'
}
// config.default.js
 // sequelize config
  config.sequelize = {
    dialect: 'mysql', // support: mysql, mariadb, postgres, mssql
    // dialectOptions: {
    //   charset: 'utf8mb4',
    // },
    database: 'wx_shop',
    host: '127.0.0.1',
    port: '3306',
    username: 'you username',
    password: 'you password',
    timezone: '+08:00',
  };

使用

生命 model,sequlize 提供了很多数类型,这里不一一相叙,有兴趣的可以去看 sequlize 官网,这是中文翻译。

model 层

// users.js

'use strict'

module.exports = function (sequelize, DataTypes) {
  return sequelize.define('user', {
    uid: {
      type: DataTypes.INTEGER(11),
      allowNull: false, 
      primaryKey: true,
      autoIncrement: true
    },
    username: {
      type: DataTypes.STRING,
      allowNull: true, // 允许空值
    },
    password: {
      type: DataTypes.STRING,
      allowNull: true,
    }
  }, {
    tableName: 'user'
  })
}

查询

Modle.findaAll({
    // 查询条件语句
})

具体的增删查改文档里面写的很详细,使用具体看文档.

先写到这里,后面会继续更新!

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...