小编Sta*_*ica的帖子

在参数数组中传递一个整数数组

我正在尝试在pg-promise的参数数组中传递一系列参数,如pg-promise文档中所建议的那样.

db.any("SELECT fieldname FROM table WHERE fieldname = $1 AND fieldname2 IN ($2)",
        [1,[[1730442],[1695256]],[487413],[454336]]])
    .then(function (data) {
        console.log("DATA:", data); // print data;
    })
    .catch(); 
Run Code Online (Sandbox Code Playgroud)

但是它不起作用,我在参数列表之后返回了"缺失"错误.或者"运算符不存在:整数=整数[]]"错误,如果我将参数替换为:

[1,[1730442]]
Run Code Online (Sandbox Code Playgroud)

当然如果我像这样传递它,它的工作原理:

[1,1730442]
Run Code Online (Sandbox Code Playgroud)

当涉及其他参数时,它是传递值数组的正确方法吗?

我还尝试删除$ 2周围的括号,但没有成功.

javascript pg-promise

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

Angular2:如何刷新依赖于解析器的组件?

我有三个组件,每个组件都有自己的解析器,可以从不同的API中获取数据.为此,这些组件依赖于使用服务在它们之间共享的URL.

我希望当对该URL发生更改时,每个组件都会重新加载,即重新启动解析器.

我看了几个相关的SO问题,但没有提到在使用解析器时如何这样做,cf:问题1,问题2,问题3

我可以想到两种方式:

脏方法:使用路由器重定向和空白组件强制刷新组件.

this.router.navigateByUrl('blank',true);
this.router.navigateByUrl('home/(mapps:mobil//sw:simil//sf:sales)');
Run Code Online (Sandbox Code Playgroud)

但那没用.有一个刷新,但解析器没有......解决.

另一种方法:使用BehaviorSubject或ChangeDetectorRef.但是,我对如何实现它一无所知,考虑到检测到组件内的变化无法帮助我实际重启解析器.

我的感觉是,这必须通过路由器以某种方式完成,因为它是了解解析器的人:

const routes: Routes = [
  {
    path: '',
    redirectTo: 'home',
    pathMatch: 'full'
  },
  {
    path: 'home',
    component: HomeComponent,
    children : [
      {
        path: '',
        component: BlankComponent
      },
      {
        path: 'simil',
        component: SwComponent,
        outlet: 'sw',
        resolve: {
          data: SwResolve
        }
      },
      {
        path: 'sales',
        component: SalesComponent,
        outlet: 'sf',
        resolve: {
          data: SalesResolve
        }
      }
    ]
  },
  {
    path: 'blank',
    component: BlankComponent
  }
];
Run Code Online (Sandbox Code Playgroud)

有关如何实现这一目标的任何提示?

编辑:这是相关的plunkr …

typescript angular2-routing angular

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

Angular 2:如何在应用程序启动时加载辅助路由

我正在尝试在应用程序启动时加载辅助路由.虽然提到Victor Savkin的ng2路由器文章,这个SO问题以及关于命名路由器插座的这篇博,我没有设法让它正常工作.我还看到在github上提出了一个可能相关的问题,现在似乎已经解决了.

由于我的代码与命名的路由器出口文章非常相似,我将重用该代码.

路由配置如下:

const routes: Routes = [
  { path: '', redirectTo: 'home', pathMatch: 'full' },
  { path: 'home', component: HomeComponent },
  { path: 'speakers', component: SpeakersComponent, children: [
    { path: 'speakersList', component: SpeakersListComponent, outlet: 'list' },
    { path: ':id', component: BioComponent, outlet: 'bio' }
  ] },
];
Run Code Online (Sandbox Code Playgroud)

app.component.html包含

<div class="app-content">
  <router-outlet></router-outlet>
</div> 
Run Code Online (Sandbox Code Playgroud)

还有speakers.component.html

<router-outlet name="list"></router-outlet>
<router-outlet name="bio"></router-outlet>
Run Code Online (Sandbox Code Playgroud)

home.component.ts是一个基本组件,它允许用户通过单击按钮导航到扬声器组件:

  <button md-raised-button class="md-primary"
          [routerLink]="['/speakers', {outlets: {list: ['speakersList'], …
Run Code Online (Sandbox Code Playgroud)

typescript angular2-routing angular

7
推荐指数
0
解决办法
1006
查看次数

Pg-promise 性能提升:冲突

我正在尝试遵循 pg-promise 库作者在这里推荐的性能模式。

基本上,Vitaly 建议使用插入来这样做:

var users = [['John', 23], ['Mike', 30], ['David', 18]];

// We can use Inserts as an inline function also:

db.none('INSERT INTO Users(name, age) VALUES $1', Inserts('$1, $2', users))
    .then(data=> {
        // OK, all records have been inserted
    })
    .catch(error=> {
        // Error, no records inserted
    });
Run Code Online (Sandbox Code Playgroud)

使用以下辅助函数:

function Inserts(template, data) {
    if (!(this instanceof Inserts)) {
        return new Inserts(template, data);
    }
    this._rawDBType = true;
    this.formatDBType = function () {
        return data.map(d=>'(' + pgp.as.format(template, …
Run Code Online (Sandbox Code Playgroud)

javascript performance node.js postgresql-9.5 pg-promise

5
推荐指数
1
解决办法
2166
查看次数

谷歌云平台:运行几个小时的抓取脚本

我有一个 NodeJS 脚本,每天都会抓取 URL。请求被限制以对服务器友好。这导致我的脚本运行了相当长的时间(几个小时)。

我一直在寻找一种在 GCP 上部署它的方法。而且因为之前是在 cron 中完成的,所以我很自然地看看如何在 Google Cloud 上运行一个 cronjob。但是,根据docs,脚本必须作为 API 公开,并且对该 API 的 http 调用最多只能运行 60 分钟,这不符合我的需要。

我看了一下这个 SO question,它建议使用云函数。但是,我不确定这种方法是否适合我的情况,因为我的脚本需要比那里描述的简单服务器监控作业更多的处理。

有没有人在 GCP 上做这件事的经验?

注意:澄清一下,我想避免在 VPS 上部署它。

编辑:我联系了谷歌,这是他们的回复:

感谢您的耐心等待。目前,无法连续运行 cron 脚本 6 到 7 个小时,因为 App Engine 中 cron 的当前限制是每个 HTTP 请求 60 分钟。如果您的用例可能,您可以将 7 小时分散到重复性任务中,例如,每 10 分钟或 1 小时。cron 作业请求与推送任务队列的限制相同。免费应用程序最多可以有 20 个计划任务。您可以参考 cron 计划格式的文档

此外,仍然可以使用 Postgres 和 Redis。但是,请注意 Postgres 仍处于测试阶段。

由于我无法分配任务,因此我不得不为此继续管理 dokku VPS。

cron google-app-engine node.js google-cloud-platform

5
推荐指数
1
解决办法
2870
查看次数

Google Apps 脚本 - 永久缓存

我有一张包含很多自定义函数调用的工作表。我想永久缓存结果。到现在为止,我一直使用缓存服务,但它被限制为六个小时。有没有办法永久缓存结果?我在这里的评论中读到,可以在用户的​​浏览器中缓存数据。我应该如何实现这一目标?

谢谢 !

编辑:感谢 Serge Hendrickx 的建议,我能够使用与缓存服务相同的方法永久缓存结果:

var scriptProperties = PropertiesService.getScriptProperties();

if(getCachedVariable(variableName) == null){
 // Results aren't in cache, get them and save them
 scriptProperties.setProperty(variableName,value);
}
return getCachedVariable(variableName);

function getCachedVariable(variableName){
  return scriptProperties.getProperty(variableName);
}
Run Code Online (Sandbox Code Playgroud)

javascript caching google-apps-script

4
推荐指数
1
解决办法
1435
查看次数

在 Php 中获取或设置十六进制字符串的长度

我正在尝试将三种类型的整数(8,16 和 32 位)转换为 Php 中的固定长度十六进制字符串。

例如,第三个 int 是 32 位无符号的。它的值设置为 300。将其转换为十六进制,得到 12c。

我希望始终从我的 int 中获取固定的六个字符的十六进制字符串,即在本例中: 00 01 2c ...或 00 00 78 如果我的 int 值为 120。(注意:我知道 32 位会克服这个范围)

有什么方法可以获取 Php 中十六进制字符串的长度吗?另一种策略是定义六角字符串的长度,但我没有找到任何与此相关的内容。

我的目标只是能够始终将 6 个字符大小的十六进制字符串发送到连接的对象。

我使用“dechex()”将我的值转换为十六进制,但我永远不知道输出的字符数,因此无法向其中添加特定数量的零(因为我的最终十六进制字符串长度为 6 个字符) )。

我读过一些关于设置 PHP_INT_MAX 的内容,但我也读到它会影响所有整数,这是我不想要的。

非常感谢您的帮助。

php

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

Angular2:如何处理异步管道和条件样式?

我期待着为绿色或红色的一些异步接收数据着色,具体取决于它的值.

为了处理竞争条件,我使用了一个Subject,它广播一个包含我感兴趣的数据的Object.

我成功地做了我想做的事,但结果代码非常难看:

<span [ngClass]="{greenClass: isPositive((mySubject | async)?.fieldData), redClass: !isPositive((mySubject | async)?.fieldData)}"> {{(mySubject | async)?.fieldData | number:'1.0-1' }} </span>

有没有更好的方法来解决这个问题?我试图在ngClass中放置一个三元表达式,但它没有用.将代码移回我的控制器是不行的,因为它会立即创建十个变量.

subject angular-pipe angular

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