标签: loopbackjs

环回模型CURRENT_TIMESTAMP

我有这样的模特 -

{
  "name": "MakeCallTestConfiguration",
  "base": "PersistedModel",
  "idInjection": true,
  "properties": {
    "id": {
      "type": "number",
      "id": true,
      "generated": true
    },
    "destination": {
      "type": "string",
      "required": true
    },
    "clientId": {
      "type": "number",
      "required": true
    },
    "logTime":{
      "type" : "date",
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": []
}
Run Code Online (Sandbox Code Playgroud)

对于"logTime",如何自动生成时间戳?我的意思是

"TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP"

strongloop loopbackjs

10
推荐指数
3
解决办法
8789
查看次数

Sequelize orm vs Loopback orm

我正在创建由PostgreSQL支持的rest api.我喜欢Strongloop Loopback框架,它简化了api开发.但它的内置orm与续集相比如何?哪些高级功能已经作为专用的sql orm继承,在环回中缺少?也许最好继续使用sequelize,并使用一些其他的api助手而不是monolitic loopback框架?

sequelize.js strongloop loopbackjs

10
推荐指数
2
解决办法
7636
查看次数

使用查找Where子句时,Loopback MongoDB字符串属性转换为ObjectId

我有一个具有许多属性的模型.其中一个是名为"developerId"的字段,它包含一个与MongoDB ObjectId具有相同长度和特征的字符串(它实际上是一个字符串化的ObjectId).

当我使用Node.js中的find()方法查询模型时,查询在执行之前会更新,并且"developerId"值将转换为ObjectId,然后无法匹配数据库中的任何字符串,因为它们是字符串,而不是的ObjectID.

{where: {developerId: '55118c5fc921fa170f05080b'}}
Run Code Online (Sandbox Code Playgroud)

转换为:

{where: {developerId: ObjectId('55118c5fc921fa170f05080b')}}
Run Code Online (Sandbox Code Playgroud)

该字段不是id字段,在模型json定义中指定为类型:'string'.

如何关闭此auto-object-id行为以便控制Loopback的查询?

mongodb loopbackjs

10
推荐指数
2
解决办法
5777
查看次数

环回:嵌入式模型在脱机同步中不起作用

我已经遵循环回脱机同步示例并使用嵌入式文档创建自己的模型.我创建了一个名为Project的Model,其中ProjectMembers是嵌入式模型.这是我的模型:
Project.json

{
    "name": "Project",
    "base": "PersistedModel",
    "strict": "throw",
    "persistUndefinedAsNull": true,
    "trackChanges": true,
    "properties": {
        ...
     },
    "relations": {
       "members": {
            "type": "embedsMany",
            "model": "ProjectMember",
            "property": "members",
            "options": {
               "validate": true,
               "forceId": false
            }
          }
    }
}
Run Code Online (Sandbox Code Playgroud)

ProjectMember.json

{
    "name": "ProjectMember",
    "base": "Model",
    "idInjection": true,
    "properties": {
        ...
    },
    "validations": [],
    "relations": {},
    "acls": [],
    "methods": []
}
Run Code Online (Sandbox Code Playgroud)

在服务器端model-config.json中我更新了数据源,如下所示:

"Project": {
    "dataSource": "my_db"
},
"ProjectMember": {
    "dataSource": "transient"
}
Run Code Online (Sandbox Code Playgroud)

在lbclient/models /的客户端,我添加了2个文件local-project.json和remote-project.json,与local-todo.json和remote-todo.json完全相同.我更新了客户端model-config.json文件,如下所示:

"RemoteProject": {
    "dataSource": "remote"
},
"LocalProject": { …
Run Code Online (Sandbox Code Playgroud)

synchronization offline node.js strongloop loopbackjs

10
推荐指数
1
解决办法
2123
查看次数

端口超时将Loopback应用程序部署到Heroku

我将一个Loopback应用程序部署到Heroku,但它一直崩溃并出现错误

Web process failed to bind to $PORT within 60 seconds of launch

我知道它可以连接到Heroku的动态端口,所以我将我的端口设置为进程环境

app.start = function () {
  // start the web server

  var port = process.env.PORT || 3000;

  app.set('port', port);

  app.use(loopback.static(path.resolve(__dirname, '../client')));
  app.use(loopback.static(path.resolve(__dirname, '../.tmp')));

  return app.listen(function () {
    app.emit('started');
    console.log('Web server listening at: %s', app.get('url'));
  });
};
Run Code Online (Sandbox Code Playgroud)

但这并没有解决问题.
任何的想法?

crash heroku node.js express loopbackjs

10
推荐指数
1
解决办法
456
查看次数

使用JWT进行环回认证

我试图了解如何使自定义JWT路由适应环回安全模型.我的应用程序有一个涉及SMS的身份验证"舞蹈",使用优秀的描述产生有效的JWT令牌.我正在使用jsonwebtoken,事情按预期工作.获得令牌后,我的angular.js客户端会在Authorisation: JWT ..token..标头中发送带有每个请求的令牌(发现有冲突的文档,其中一个说JWT,一个Bearer,但我可以解决这个问题).

现在我想在loopback应用程序中使用令牌.我想使用ACL系统环回提供.我确实阅读了以下资源:

我不清楚接下来的步骤是什么.我有工作:

  • 用户'登录' - 生成JWT
  • 用户使用用户名/密码登录(退休)
  • 在环回中实现ACL实现(当我访问受ACL保护的资源时,我得到,正如预期的那样4xx错误)
  • 我的JWT令牌在请求的标头中正确(?)

我需要:

  • 基于JWT令牌的有效用户,其角色与回送ACL兼容

非常感谢帮助

node.js jwt loopbackjs passport.js

10
推荐指数
1
解决办法
9138
查看次数

Strongloop应用程序不加载本地数据源

我想在Strongloop应用程序中使用不同的特定于环境的数据源配置.我在https://docs.strongloop.com/display/public/LB/Environment-specific+configuration上看到配置的优先级是:

  1. 特定环境的配置,基于NODE_ENV的值; 例如,server/config.staging.json.
  2. 本地配置文件 ; 例如,server/config.local.json.
  3. 默认配置文件 ; 例如,server/config.json.

我已经声明了三个数据源配置文件: datasources.json:

{}
Run Code Online (Sandbox Code Playgroud)

datasources.local.json:

{
  "db": {
    "name": "db",
    "connector": "loopback-connector-mongodb",
    "host":"127.0.0.1",
    "port": "27017",
    "database": "woowDev"
  }
}
Run Code Online (Sandbox Code Playgroud)

datasources.staging.js:

module.exports = {
  db: {
    connector: 'mongodb',
    hostname: process.env.OPENSHIFT_MONGODB_DB_HOST,
    port: process.env.OPENSHIFT_MONGODB_DB_PORT,
    user: process.env.OPENSHIFT_MONGODB_DB_USERNAME,
    password: process.env.OPENSHIFT_MONGODB_DB_PASSWORD,
    database: 'woow'
  }
};
Run Code Online (Sandbox Code Playgroud)

现在,除非我在datasources.json中放置datasources.local.json的配置,否则它不起作用.我一直收到错误:AssertionError: User is referencing a dataSource that does not exist: "db"

我还尝试将本地conf添加到staging conf并定义变量NODE_ENV,但它不会加载datasource.staging.js.我通过这样做来定义NODE_ENV:

export NODE_ENV=staging
Run Code Online (Sandbox Code Playgroud)

javascript json strongloop loopbackjs

10
推荐指数
1
解决办法
1601
查看次数

使用内存作为数据源的环回测试

我正在尝试在进行集成测试时使用内存连接器作为数据源.但似乎总是连接到mongodb-datasource.

我所做的一个主要工作是将每个模型的数据源更改为内存.但必须有更好的方法来做到这一点.我正在从gulp任务中运行我的测试.我的roflmao模型 - 记忆 - 黑客:

var models = require('../server/model-config.json');
  for (var key in models) {
    var model = loopback.getModel(key);
    loopback.configureModel(model, {dataSource: memory});
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法更改应用程序的数据源?或者我是否必须更改每个模型的数据源..?

这样做的一种方法是在测试期间更改环境变量,但到目前为止,没有运气..我正在使用gulp-task预处理执行此操作.

希望通过更改环境变量,它将使用datasources.integrationtesting.js,其中我将内存作为数据源.

我的任务:

return gulp.src('integration-tests/*.js')
.pipe($.preprocess({context: {NODE_ENV: 'integrationtesting'}}))
.pipe($.mocha())
Run Code Online (Sandbox Code Playgroud)

我正在使用:

  • 环回测试功能
  • 一饮而尽,摩卡

感谢任何评论.. :)

environment-variables node.js strongloop loopbackjs

9
推荐指数
1
解决办法
2122
查看次数

Diacritic Case-Insensitive search Loopback

有没有办法使用Diacritic-Case-Insensitive选项查询Loopback + MongoDB上的结果?

例如,如果我想搜索查询olimpic,并且数据库包含以下单词:

Olímpic
olimpic
Olimpic
Run Code Online (Sandbox Code Playgroud)

然后,所有上述内容都应作为结果返回.我尝试过下面列出的多个查询和其他组合,但到目前为止还没有任何工作.

{"where":{"name.text":{"like":"olimpic","options":"i"}}}
{"where":{"name.text":{"like":"/^olimpic$/i","options":"i"}}}
{"where":{"name.text":{"like":"/.*olimpic.*/i"}}}
{"where":{"name.text":{"regexp":"/.*olimpic.*/i"}}}
Run Code Online (Sandbox Code Playgroud)

任何的想法?

提前致谢!

regex mongodb strongloop loopbackjs

9
推荐指数
1
解决办法
1071
查看次数

如何在Loopback中自动迁移

我在我的loopback应用程序中重命名了许多模型和表,但是现在我必须迁移到这个模型定义.

我需要运行autoMigrate().它必须在dataSource对象上运行,但文档没有提供有关获取其中一个的帮助.

到目前为止,我已经创建了一个新脚本/boot:

var loopback = require('loopback');
var app = module.exports = loopback();
app.loopback.DataSource.automigrate()
Run Code Online (Sandbox Code Playgroud)

但是这个数据源对象不包含autoMigrate函数......

我已经尝试运行strongloop arc来使用那里存在的自动迁移按钮,但页面崩溃时出现此错误:

Uncaught Error: [$injector:modulerr] Failed to instantiate module Arc due to:
Error: [$injector:modulerr] Failed to instantiate module Metrics due to:
Error: [$injector:nomod] Module 'Metrics' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.3.20/$injector/nomod?p0=Metrics
    at http://localhost:56073/scripts/vendor/angular/angular.js:63:12
    at http://localhost:56073/scripts/vendor/angular/angular.js:1778:17
    at ensure (http://localhost:56073/scripts/vendor/angular/angular.js:1702:38) …
Run Code Online (Sandbox Code Playgroud)

loopback strongloop loopbackjs

9
推荐指数
1
解决办法
6639
查看次数