loopback 使用系列之一
发布于 8 年前 作者 qxl1231 6709 次浏览 来自 分享
  • 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
16 回复

楼主最好把实例方法和类方法也写上, isStatic: false,及这两者的区别。

@Neil-UWA 这些都是进阶了,自己看官方文档咯 自豪地采用 CNodeJS ionic

我这个例子是因为我用了个prototype,定义了个实例,所以才FALSE,正常情况⬇️是默认为true 自豪地采用 CNodeJS ionic

正好找这个问题怎么解决,谢谢楼主! 另外请问下怎么使用sql语句操作数据库,还望告知。

@tm-TFS 看这里https://docs.strongloop.com/display/public/LB/Executing+native+SQL

@Neil-UWA 还是用不像诶,各种报connect undefined,因为之前没有用 loopback 连过数据库,所以有详细点的实例吗。还望告知一二。

@tm-TFS Screen Shot 2016-08-24 at 4.40.41 PM.png 上面的item是一个Model 也可以使用connector.execute(…, cb)

我单位用这个,挺好玩儿的! 自豪地采用 CNodeJS ionic

@Neil-UWA 谢谢大哥,太牛了。还有个问题想请教下,因为这种设计好像是一个model对应一个表,那么我要链表查询 应该怎么写呢,谢谢指导!

@tm-TFS 你都已经用sql语句了不就一个join的事吗。。。,不过我是不建议的

@Neil-UWA 哦,是不建议用sql 语句吗,为什么

@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”: {}

@tm-TFS 使用的时候直接

var WeChat = model.relations.wechat.modelTo;

@qxl1231 非常感谢, 只是项目 已经开始写了,都是自己封装sql , 有点痛苦。 另外有几个问题想请教下, 1、为啥我建的项目有个文件是 .eslintignore 而人家建的都是 .jshintignore 2、我安装了loopback-connector-oracle 之后 运行项目 终端会打印出一大堆东西, 重点是ctrl + C 还无效了。 3、我传中文到oracle 服务器 会出现乱码的情况,接口返回是 ‘???’ 。

@tm-TFS 我的也是jsig,不知道你为什么会是es,2,因为 你是win 系统,如果用mac系统,应该就正常了,建议用mac系统试一下,或者在linux机器上试试,3.是你编码没设置对,可以再看下官方文档,或者stackover上搜一下具体报错信息

@qxl1231 modelTo是什麼意思?wechat的屬性嗎?

回到顶部