controller如下:
"use strict"
const { Controller } = require("uni-cloud-router");
module.exports = class AddressController extends Controller {
// 新增
async add(){
const { ctx, service } = this;
// 校验参数
ctx.validate({
name: { type: "string" }
});
// 组装参数
const post = Object.assign(ctx.data,{user_id:ctx.auth.uid});
// // 调用 Service 进行业务处理
return service.address.add(post);
}
};
本地param参数如下:
{
"action":"address/add",
"data": {
"name":"李四"
},
"uniIdToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiIxOGVkMDk2ODYxOTMxMmI5MDU4MmIzOTA3MGJjMmM0OSIsInJvbGUiOltdLCJwZXJtaXNzaW9uIjpbXSwiaWF0IjoxNjM5MDEzODYxLCJleHAiOjE2MzkyNzMwNjF9.TRP777OkBDmqHEMWej_sp13hgU8tdIm1GRnOvFdWfa0"
}
service文件内容如下:
"use strict"
const { Service } = require("uni-cloud-router");
module.exports = class AddressService extends Service {
async add(data) {
return this.db.collection("uni-id-address").add(data)
}
};
2 个回复
1***@qq.com
刚在学习router的使用 按post例程也出现了这个错误 蹲个结果
DCloud_uniCloud_WYQ
ctx.validate是需要自己的中间件实现的方法,包括文档这段代码下面的ctx.auth.uid也是需要用户自己实现中间件挂载的。我们修改一下文档