前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Egg.js 笔记三 搭建 Restful 服务

Egg.js 笔记三 搭建 Restful 服务

作者头像
tonglei0429
发布2019-07-22 14:01:03
1.3K0
发布2019-07-22 14:01:03
举报
文章被收录于专栏:信息安全小学生

初始化工程

代码语言:javascript
复制
$ egg-init

选择 Simple

代码语言:javascript
复制
$ npm i
$ npm run dev

浏览器访问 http://localhost:7001 此时服务已经建立

设计API

egg Rest API 接口规范

| Method | URL | File path | Controller name | | - | - | - | - | | GET | /api/{objects}[?per_page={per_page}&page] | app/controller/{objects}.js | index() | | GET | /api/{objects}/:id | app/controller/{objects}.js | show() | | POST | /api/{objects} | app/controller/{objects}.js | create() | | PUT | /api/{objects}/:id | app/controller/{objects}.js | update() | | DELETE | /api/{objects}/:id[s] | app/controller/{objects}.js | destroy() |

数据格式

代码语言:javascript
复制
{
"meta":{"total":3},
"data":[
{"_id":"58d8a899f5f2486f1f6d4236","uid":1,"name":"admin","pass":"123","status":1,"time":"1325472736"},
{"_id":"58db7828a14b14815447cf33","name":"sdf","pass":"123","status":1,"time":"1325472736","uid":3,"__v":0},
{"_id":"58db7d3bcee4d48df6f5bdfd","name":"sdddf","pass":"123","status":1,"time":"1325472736","uid":4,"__v":0}
]
}

api/users/1 GET Single Data

代码语言:javascript
复制
{
"meta":{"total":1},
"data":[
{"_id":"58d8a899f5f2486f1f6d4236","uid":1,"name":"admin","pass":"123","status":1,"time":"1325472736"}
]
}

api/users/2 PUT Update data with uid

代码语言:javascript
复制
{"name":"admin123","pass":"123","status":1,"time":"1325472736"}

api/users POST insert data

代码语言:javascript
复制
{"name":"admin123","pass":"123","status":1,"time":"1325472736"}

数据模型

此处先定义用户 User 对象,在 app 目录下 新建 model 文件夹,然后创建 users.js 文件。

每一个 User 对象需要包含 用户名、密码、邮箱、公司 等信息, users.js 文件内容如下:

代码语言:javascript
复制
// app/model/user.js

module.exports = app => {
  const mongoose = app.mongoose;
  const UserSchema = new mongoose.Schema({
    email : {type: String, required: true},
    password: {type: String, required: true},
    realname: { type:String },
    sex: { type: String },
    corp: { type: String },
    position: { type: String },
    mobile: { type: String },
    region: { type: String },
    qq: { type: String },
    wechat: { type: String },
    bcardurl: { type: String },
    bcardstate: { type: String }
  });

  UserSchema.methods.encryptPassword = function(password) {
    return bcrypt.hashSync(password, bcrypt.genSaltSync(5), null);
  };

  UserSchema.methods.validPassword = function(password) {
    return bcrypt.compareSync(password, this.password);
  };

  return mongoose.model('User', UserSchema);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 初始化工程
  • 设计API
    • egg Rest API 接口规范
      • 数据格式
      • 数据模型
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档