小编Tra*_*ebb的帖子

在Sailsjs中是否有可能构建更复杂的模型

我想在我的模型中有数组或集合,这是否可以使用waterline(mongoDB)?周围有什么替代品吗?

例:

{
   name: Bundle,
   col1 : {
      name : anOtherModel,
      subCol: {
         text: aString,
         ...
      }
   },
   col2 : {
      name : anOtherModel,
      subCol: {
         text: aString,
         ...
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

至:

module.exports = {

    attributes : {

        name : {
            type : 'STRING',
            required : true
        },
        basicModules: {
            type : 'ARRAY', // or 'COLLECTION'
            required : false
        }
    }

};
Run Code Online (Sandbox Code Playgroud)

sails.js waterline

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

摩卡:承诺中的断言不起作用

因此,我对mocha完全不熟悉,并且我被要求编写集成测试,将表单数据发布到页面,获取身份验证密钥,然后对密钥运行测试.

我正确地获得了密钥,这可以通过我的日志声明来确认,但是当我运行mocha时,我的测试表示0传递.它甚至没有打印出'describe'和'it'语句的描述,暗示它们在promise中不起作用.有没有我可以这样工作,同时仍然让断言访问我的授权密钥?

require('should');
require('sails');
var Promise = require("promise");
var request = require('request');

describe('Domain Model', function(){
  var options = { url:'link',
    form:{
      username: 'xxxxx@xxxxxx',
      password: '0000'
    },
    timeout: 2000
  };
  //request auth key
  var promise = new Promise(function(resolve,reject){
    request.post(options, function(error, response, body){
      //body contains the auth key, within a string of JSON
      resolve(body);
    });
  });
  //this is where I'm getting lost
  promise.then(function(data,test){
    var token = (JSON.parse(data))["access_token"];
    console.log(token);
      describe('Initialize',function(){
        it('should be an string', function(){
          (token).should.be.type('string');
        });

      });
  });

});
Run Code Online (Sandbox Code Playgroud)

javascript mocha.js promise should.js sails.js

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

Google Cloud SQL非常慢

我正在考虑将我的网站迁移到Google Cloud SQL,然后我注册了一个免费帐户(D32).

在有23k记录的桌子上进行测试时,性能非常差,所以我读到如果我从免费帐户转到完全付费帐户,我可以访问更快的CPU和HDD ...所以我做到了.

表演仍然非常糟糕.

我正在运行我自己的MySQL服务器多年,根据需要升级以处理越来越多的连接并获得原始速度(由于遗留应用程序需要).我高度优化表,配置和大量使用查询缓存等...

我们遗留系统的几页每页有超过1.5k的查询,目前我能够将所有查询的mysql查询时间(执行和拉动数据)推迟到3.6秒,这意味着MySQL需要大约0.0024秒执行查询并返回值..不是最大但可接受的那些页面.

我将涉及这些问题的表格上传到Google Cloud SQL.我注意到INSERT已经执行SECONDS而不是毫秒......但我认为它可能是syncvs async设置.我将其更改为async并且插入的执行时间不会改变.现在不是一个大问题,我现在只测试查询.

我运行一个简单的select * FROM <table>,我注意到它需要超过6秒..我认为可能查询缓存需要构建..我再试一次,这次需要4秒(不包括网络流量).重启后我在备份服务器上运行相同的查询,根本没有连接,只需不到1秒......再次运行,0.06秒.

也许问题是缓存,太大了......让我们尝试一个较小的子集

select * from <table> limit 5;

  • 到我的服务器:0.00秒
  • GCS:0.04

所以我决定在空桌上尝试一个愚蠢的选择,根本没有记录,只用1个字段创建

  • 到我的服务器:0.00秒
  • GCS:0.03

分析不会提供任何见解,除了查询缓存没有在Google Cloud SQL上运行,并且查询执行似乎更快但......不...

我的服务器:

mysql> show profile;
+--------------------------------+----------+
| Status                         | Duration |
+--------------------------------+----------+
| starting                       | 0.000225 |
| Waiting for query cache lock   | 0.000116 |
| init                           | 0.000115 |
| checking query cache for query | 0.000131 |
| checking permissions …
Run Code Online (Sandbox Code Playgroud)

google-cloud-sql

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

从 Google Cloud Run 执行日志记录的最简单方法

我按照本指南https://firebase.google.com/docs/hosting/cloud-run来设置云运行 docker。然后我尝试按照本指南https://cloud.google.com/run/docs/logging执行简单的日志。尝试将结构化日志写入 stdout 这是我的代码:

    trace_header = request.headers.get('X-Cloud-Trace-Context')

    if trace_header:
        trace = trace_header.split('/')
        global_log_fields['logging.googleapis.com/trace'] = "projects/sp-64d90/traces/" + trace[0]

    # Complete a structured log entry.
    entry = dict(severity='NOTICE',
                 message='This is the default display field.',
                 # Log viewer accesses 'component' as jsonPayload.component'.
                 component='arbitrary-property',
                 **global_log_fields)

    print(json.dumps(entry))
Run Code Online (Sandbox Code Playgroud)

我在 Cloud Logs Viewer 中看不到此日志。每次调用 docker 时,我都会看到 http Get 日志。我错过了什么吗?我对此很陌生,想知道假设我创建的 docker 完全按照指南中的步骤(https://firebase.google.com/docs/hosting/cloud)记录信息并查看它的简单方法是什么-运行)

谢谢

python logging docker google-cloud-run

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

如何使用Waterline和MongoDB执行"$ in"查询

我正在尝试使用水线进行"$ in"查询我有一个数组,我想得到一个包含数组中的ID的文档列表.我不知道该怎么做.

我试过了:

User.find()
.where({id : {in : array}})
done(...)
Run Code Online (Sandbox Code Playgroud)

但它似乎没有按预期工作.

我能以任何方式做到这一点吗?

mongodb node.js sails.js waterline

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

Sails.js使用sails-mysql的日期的水线查询修饰符?

我刚开始使用Sails.js及其ORM,Waterline,并且非常喜欢它,但我不确定如何使用查询修饰符来表示日期.我正在使用sails-mysql.具体来说,我试图获取具有两个特定日期之间的日期时间字段的行.我试过这样做:

MyModel.find()
    .where({ datetime_field: { '>=': startDate } })
    .where({ datetime_field: { '<=': endDate } })
    .done(function(err, objects){
        // ...
    });
Run Code Online (Sandbox Code Playgroud)

startDate并且endDate是两个Date对象.我也尝试将它们转换为字符串toString().在这两种情况下,我从数据库中获取每一行而不是两个日期之间的行.有没有办法做到这一点,或者这个功能还不是Waterline或sails-mysql的一部分?

mysql orm node.js sails.js waterline

9
推荐指数
2
解决办法
8593
查看次数

带有本机WebSockets的Sails.js

我想用sails.js制作公共 WebSocket API .所以我想使用本机WebSockets而不是内置的socket.io,但使用Sails.js控制器和模型.可能吗?也许我可以实现自定义传输或其他东西.谢谢你的帮助.

websocket node.js socket.io sails.js

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

拒绝连接!selenium服务器是否已启动

我继承了一个没有文档的工作项目.这是一个sails.js应用程序.有一小组单元测试和端到端测试.

当我尝试使用grunt运行端到端测试时.我明白了:

$ grunt e2e
Running "nightwatch" task
started - PID:  5440
>> Executing "default" tests (standalone)

[Index] Test Suite
==================

Running:  Should clean the collection

removing 0 places
>> Connection refused! Is selenium server started?
Run Code Online (Sandbox Code Playgroud)

我不知道自己错过了什么.这让我停留了一个多星期.

该项目在grunt- nightwatch中有一个selenium-server-standalone-2.40.0.jar.所以我把PID作为selenium服务器启动.如果我先启动jar(在grunt之外),我会得到

$ grunt e2e
org.openqa.grid.selenium.GridLauncher main
INFO: Launching a standalone server
18:38:46.189 WARN - Failed to start: SocketListener0@0.0.0.0:4444
Exception in thread "main" java.net.BindException: Selenium is already running on port 4444. Or     some other service is.
    at org.openqa.selenium.server.SeleniumServer.start(SeleniumServer.java:491)
    at org.openqa.selenium.server.SeleniumServer.boot(SeleniumServer.java:300) …
Run Code Online (Sandbox Code Playgroud)

javascript testing selenium node.js sails.js

9
推荐指数
2
解决办法
2万
查看次数

使用Socket.IO和NodeJS实现音频聊天

我用sails.js(node.js)和创建了一个聊天应用程序socket.IO.

我需要实施audio chatfile transfers与之一起实施.

任何人都可以帮我获得WebRTC与之集成的基本教程链接socket.IO吗?

提前致谢.

node.js socket.io webrtc sails.js

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

风帆中的disk.db在哪里?

sails.js中的disk.db在哪里?我没有在.tmp文件夹中看到它.我添加了用户模型和控制器,并能够添加用户和查询.我也停止并重新启动应用程序,因此它必须存储在某个地方.

node.js sails.js

9
推荐指数
2
解决办法
3031
查看次数