- slc loopback 初始化项目
- slc loopback:datasource
- slc loopback:model
Define model relations
- slc loopback:relation
然后就可以在model.js中写你的实现逻辑了;
- 当你已经完成以上,系统就帮你生成了model 对应的所有restful API,
这时候,你会问,怎么加自定义请求呢?
’ City.remoteMethod(‘getCity’, { //isStatic: false, 这是代表不是实例方法,如果是实例方法则为true accepts: [ {arg: ‘cityname’, type: ‘string’} ], returns: [ {arg: ‘city’, type: ‘object’}
],
http: {path: '/getCity', verb: 'get'} });'
' City.getCity = function getCity(cityname, cb) {}' 这个是定义的方法;
这样你的自定义方法就搞定了.
loopback 交流群:575600225@tm-TFS Screen Shot 2016年08月24日 at 4.40.41 PM.png 上面的item是一个Model 也可以使用connector.execute(..., cb)
@tm-TFS 看官方文档,有relation的说明!使用relation最简单,而且方便,例如:
{ "name": "lbUser", "description": "用户模型", "base": "User", "idInjection": true, "options": { "validateUpsert": true }, "properties": { "uuid": { "type": "string", "required": true, "defaultFn": "uuid", "description": "用户UUID" }, "mcloudId": { "type": "string", "required": false, "description": "在调用mcloud授权接口中使用", "defaultFn": "uuid" }, "mcloudUserId": { "type": "string", "required": false, "description": "mcloud对应的userId" }, "mcloudAccessToken": { "type": "string", "required": false }, "mcloudRefreshToken": { "type": "string", "required": false }, "mcloudAccessTokenExpiredAt": { "type": "date", "required": false } }, "validations": [], "relations": { "lbDevices": { "type": "hasMany", "model": "lbDevice", "foreignKey": "", "through": "lbBind" }, "accessTokens": { "type": "hasMany", "model": "accessToken", "foreignKey": "userId" }, "identities": { "type": "hasMany", "model": "userIdentity", "foreignKey": "userId" }, "credentials": { "type": "hasMany", "model": "userCredential", "foreignKey": "userId" }, "udids": { "type": "hasMany", "model": "UDID", "foreignKey": "" }, "wechat": { "type": "hasOne", "model": "lbWeChat", "foreignKey": "" } }, "acls": [ { "accessType": "*", "principalType": "ROLE", "principalId": "$owner", "permission": "ALLOW" }, { "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW", "property": "loginByUDID" }, { "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW", "property": "loginByWeChat" }, { "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW", "property": "loginByOpenWeixin" }, { "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW", "property": "udidRegistered" }, { "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW", "property": "signupByUDID" }, { "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW", "property": "signup" }, { "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW", "property": "getAppUserIdByMcloudId" }, { "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW", "property": "getModelByScannedQRCode" } ], "methods": {}
@qxl1231 非常感谢, 只是项目 已经开始写了,都是自己封装sql , 有点痛苦。 另外有几个问题想请教下, 1、为啥我建的项目有个文件是 .eslintignore 而人家建的都是 .jshintignore 2、我安装了loopback-connector-oracle 之后 运行项目 终端会打印出一大堆东西, 重点是ctrl + C 还无效了。 3、我传中文到oracle 服务器 会出现乱码的情况,接口返回是 ‘???’ 。
@tm-TFS 我的也是jsig,不知道你为什么会是es,2,因为 你是win 系统,如果用mac系统,应该就正常了,建议用mac系统试一下,或者在linux机器上试试,3.是你编码没设置对,可以再看下官方文档,或者stackover上搜一下具体报错信息