Egg.js 笔记三 搭建 Restful 服务

初始化工程

$ egg-init

选择 Simple

$ npm i
$ npm run dev

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

设计API

egg Rest API 接口规范

MethodURLFile pathController name
GET/api/{objects}[?per_page={per_page}&page]app/controller/{objects}.jsindex()
GET/api/{objects}/:idapp/controller/{objects}.jsshow()
POST/api/{objects}app/controller/{objects}.jscreate()
PUT/api/{objects}/:idapp/controller/{objects}.jsupdate()
DELETE/api/{objects}/:id[s]app/controller/{objects}.jsdestroy()

数据格式

{
"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

{
"meta":{"total":1},
"data":[
{"_id":"58d8a899f5f2486f1f6d4236","uid":1,"name":"admin","pass":"123","status":1,"time":"1325472736"}
]
}

api/users/2 PUT Update data with uid

{"name":"admin123","pass":"123","status":1,"time":"1325472736"}

api/users POST insert data

{"name":"admin123","pass":"123","status":1,"time":"1325472736"}

数据模型

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

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

// 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);
}

转载于:https://my.oschina.net/tonglei0429/blog/1632227

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值