CNode

loopback 使用系列之一

分享
Qqxl1231发布于11 年前最后回复9 年前16 回复8412 浏览0 收藏
  • 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)

N
Neil-UWA#1·11 年前

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

Q
qxl1231#2·11 年前
引用 Neil-UWA楼主最好把实例方法和类方法也写上, isStatic: false,及这两者的区别。

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

Q
qxl1231#3·11 年前
引用 Neil-UWA楼主最好把实例方法和类方法也写上, isStatic: false,及这两者的区别。

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

T
tm-TFS#4·10 年前

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

T
tm-TFS#6·10 年前
引用 Neil-UWA@tm TFS 看这里https://docs.strongloop.com/display/public/LB/Executing+native+SQL

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

G
guosen88100300#8·10 年前

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

T
tm-TFS#9·10 年前
引用 Neil-UWA@tm TFS 上面的item是一个Model 也可以使用connector.execute(..., cb)

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

T
tm-TFS#11·10 年前
Q
qxl1231#12·10 年前
引用 tm-TFS@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": {}

Q
qxl1231#13·10 年前

@tm-TFS 使用的时候直接

var WeChat = model.relations.wechat.modelTo;

T
tm-TFS#14·10 年前
引用 qxl1231@tm TFS 使用的时候直接 var WeChat = model.relations.wechat.modelTo;

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

Q
qxl1231#15·10 年前
引用 tm-TFS@qxl1231 非常感谢, 只是项目 已经开始写了,都是自己封装sql , 有点痛苦。 另外有几个问题想请教下, 1、为啥我建的项目有个文件是 .eslintignore 而人家建的都是 ....

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

Y
YangSenJason#16·9 年前
引用 qxl1231@tm TFS 使用的时候直接 var WeChat = model.relations.wechat.modelTo;

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

参与回复
登录后即可参与回复。登录