小程序是通过App.HttpService请求后台的,比如在order/confirm/index.js里,就有4个这样的请求了
App.HttpService.getDefalutAddress()
App.HttpService.getAddressDetail(id)
App.HttpService.postOrder(params)
App.HttpService.clearCartByUser
这个HttpService具体是在这里实现的
import HttpService from './helpers/HttpService'
如果自己添加路由,首先在this.$$path={
wechatSignUp:'/user/wechat/sign/up',
里加上自己的路径
order:'/order',
book:'/book'
getBanners(params) 调的是 this.getRequest(this.$$path.banner, {
data: params}) , 第一个参数是路由,第二个参数是 data:params的json数据包
getGoods(params) : this.getRequest(this.$$path.goods, {data: params})
getDetail 传入id,并且把id加在路由的后面变成 /goods/:id
getDetail(id) {
return this.getRequest(`${this.$$path.goods}/${id}`)
}
如果传入两个参数,第1个id,第2个参数params装在json的data属性里发射出去
putCartByUser(id, params) {
return this.putRequest(`${this.$$path.cart}/${id}`, {
data: params,
})
}
除了HttpService,还有App.HttpResource('/goods/:id', {id: '@id'})
传入路由,/goods/:id, 参数{id:'@id'}
class HttpResource {
constructor(url, paramDefaults, actions, options) {
由此看来,上面传入了url,还传入了paramDefaults,
const resource = new WxResource(this.setUrl(this.url), this.paramDefaults, this.actions, this.options)
/**
* 设置请求路径
*/
setUrl(url) {
return `${__config.basePath}${url}`
}
basePath: 'http://localhost:3000/api',
domain: 'http://localhost:3000/',
basepath就是 http://localhost:3000/api, 加上后面的{url}比如/goods,就是http://localhost:3000/api/goods, 这是传给WxResource的第一个参数,
网友评论