我正在尝试在Swift中实现示例LoopBack iOS应用程序
而且我在从ObjectiveC转换时遇到了一些麻烦
- (void) getBooks
{
//Error Block
void (^loadErrorBlock)(NSError *) = ^(NSError *error){
NSLog(@"Error on load %@", error.description);
};
void (^loadSuccessBlock)(NSArray *) = ^(NSArray *models){
NSLog(@"Success count %d", models.count);
self.tableData = models;
[self.myTable reloadData];
};
//This line gets the Loopback model "book" through the adapter defined in AppDelegate
LBModelRepository *allbooks = [[booksAppDelegate adapter] repositoryWithModelName:prototypeName];
//Logic - Get all books. If connection fails, load the error block, if it passes, call the success block and pass allbooks …Run Code Online (Sandbox Code Playgroud) 我正在尝试修改create的http状态代码.
POST /api/users
{
"lastname": "wqe",
"firstname": "qwe",
}
Run Code Online (Sandbox Code Playgroud)
返回200而不是201
我可以为错误做些类似的事情:
var err = new Error();
err.statusCode = 406;
return callback(err, info);
Run Code Online (Sandbox Code Playgroud)
但是我找不到如何更改create的状态代码.
我找到了创建方法:
MySQL.prototype.create = function (model, data, callback) {
var fields = this.toFields(model, data);
var sql = 'INSERT INTO ' + this.tableEscaped(model);
if (fields) {
sql += ' SET ' + fields;
} else {
sql += ' VALUES ()';
}
this.query(sql, function (err, info) {
callback(err, info && info.insertId);
});
};
Run Code Online (Sandbox Code Playgroud) 我希望能够根据相关模型的属性进行过滤。例如,我有一个带有 Building 对象的 Class 对象。我想获得在某个建筑物中进行的课程列表。
这个过滤器
{
"include":"building",
"scope":{
"where":{
"name":"warehouse"
}
}
}
Run Code Online (Sandbox Code Playgroud)
返回所有类,但仅包括名称为“仓库”的建筑。我想要的是将建筑物名称的 where 子句应用于整个过滤器,以便我只在建筑物具有该名称时才获取该类。
有什么办法可以做我想做的事吗?
谢谢!
使用环回,我使用 REST 连接器创建了到现有 API 的连接,该连接运行良好。但是,我想传递来自客户端的 oAuth 令牌。
我可以通过ctx.req.headers.authorization从Model.beforeRemote方法中抓取来获取 oAuth 令牌,但似乎无法找到将它作为新标头传递给 REST 连接器的方法。
我尝试了几件事:
Model.observe(但这似乎不会用 REST 连接器触发)。任何想法表示赞赏。
我正在为一家公司开发一个私人 Web 应用程序,他们要求我使用他们的服务器来托管它。我想阻止他们访问源代码。我怎样才能做到这一点?他们的服务器正在运行 debian 并且他们拥有 root 访问权限。
我找到了一些解决方案,比如将应用程序打包到一个可执行文件中,但该应用程序有很多依赖项,我使用的是 loopback.io 框架;这使得包装非常困难..
任何不同的解决方案?
我正在使用Loopback来创建Rest API.需要根据集合中的特定列获取不同的数据.我在下面尝试过,但它不起作用,而下面的代码片段也提取重复数据:
this.app.models.location.find(
{
distinct: ("regionName",
{state: st})
}
,
function(err, location){........}
Run Code Online (Sandbox Code Playgroud)
'RegionName'是'location'集合的属性,我只需要选定状态的数据(state是location集合的另一个属性),由'st'表示.谢谢.
我正在使用strongloop的loopbackjs来实现API.
对于Cat我定义了远程方法的模型,我们可以调用它meow.
所以我能做到:
GET /cats/{:id}/meow
该Cat模型属于该User模型.
现在我希望能够做到这样的事情:
GET /users/{:id}/cats/{:id}/meow
有谁知道如何做到这一点?
我已经尝试过nestRemoting,它只适用于嵌套的"蓝图"方法.
我需要根据请求源在loopback数据源中切换数据库
例如.如果我发出请求,xyz.domain.com我需要xyz 为数据源选择数据库(我们在前端使用通配符子域,因此会有多个这样的子域).
我尝试构建中间件,从每个请求源中提取子域,并为数据源设置数据库.现在的问题是在几个同时发出的请求之后,环回服务器因"连接太多"错误而中断(可能是因为它在每个请求上创建了新的连接线程)
(我使用my-sql连接器作为数据源)
以下是我的中间件代码
'use strict';
const DataSource = require('loopback-datasource-juggler').DataSource;
const app = require('../../server/server.js');
const getSubdomain = require('../middlewares/getSubdomain.js');
module.exports = function() {
return function datasourceSelector(req, res, next) {
if (req.path !== '/api/check-realm') {
let subdomain = getSubdomain(req); // this will get me subdomain from request origin
let dataSource = new DataSource({
'host': 'localhost',
'port': 3306,
'database': subdomain ? subdomain[1] || 'default' : 'default',
'user': 'user',
'password': 'user',
'name': 'mysqlDS',
'connector': 'mysql'
}); // …Run Code Online (Sandbox Code Playgroud)我正在使用环回反应.我想在环回中集成反应代码.如果我做这3个步骤
1)middleware.json - put this
"files": {
"loopback#static": {
"params":"$!../client"
}
},`
2)root.js
router.get('/');
3)front end code
"build": "react-scripts build && cp -r build/* ../client/",
Run Code Online (Sandbox Code Playgroud)
那打开了我在localhost上的反应站点:3000.现在问题是当我这样做时我无法访问我的环回:3000/explorer所以我的第一个问题是在这种情况下,如何访问资源管理器.
但后来我回滚了,因为我想再次使用环回资源管理器.
所以,我删除了所有这些添加的代码和浏览器回来,但当我再次添加它现在,我没有看到我的反应代码
我仍然可以在http:// localhost:3000/explorer /看到探险家, 如果我去http:// localhost:3000/apphome 我看到404错误
现在,我的middleware.json文件用于环回
{
"initial:before": {
"loopback#favicon": {}
},
"initial": {
"compression": {},
"cors": {
"params": {
"origin": true,
"credentials": true,
"maxAge": 86400
}
},
"helmet#xssFilter": {},
"helmet#frameguard": {
"params": [
"deny"
]
},
"helmet#hsts": {
"params": {
"maxAge": 0,
"includeSubdomains": true
}
},
"helmet#hidePoweredBy": …Run Code Online (Sandbox Code Playgroud) 我正在做一个
console.log(process.env.TZ);
console.log(new Date());
Run Code Online (Sandbox Code Playgroud)
它输出
Europe/Amsterdam
2018-09-02T08:07:03.842Z
Run Code Online (Sandbox Code Playgroud)
但目前的时间是10:07而不是08:07.
实际的问题是,当我将模型保存到数据库时,它会以某种方式转换为UTC,这不是我想要的.它就像order.delivery_date = 2018-08-06 10:00:00; order.save().当我查看数据库时,它说08:00:00.我该如何防止这种情况发生?
我正在使用Loopback 3和MySQL.
loopbackjs ×10
javascript ×2
node.js ×2
strongloop ×2
auth0 ×1
backend ×1
date ×1
http ×1
ios ×1
oauth ×1
reactjs ×1
rest ×1
swift ×1
utc ×1