小编sup*_*tle的帖子

encodeURIComponent 与 URLSearchParams 的不同输出

我使用URLSearchParmasAPI构建了一个带有查询参数的 oauth2 url 。但是,输出 URL 没有返回预期的 URL。任何人都可以帮助我理解这两个API之间的差异,我怎么能得到相同的结果的输出encodeURIComponent,使用URLSearchParams?谢谢!

const expected = encodeURIComponent('code id_token'); // code%20id_token

const search = new URLSearchParams();
search.set('response_type', 'code id_token');
search.toString(); // code+id_token
Run Code Online (Sandbox Code Playgroud)

url query-parameters oauth-2.0

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

玩笑单元测试是否调用了super()

我有一个自定义错误类,该类扩展了Javascript中的内置Error类。我想到的问题是,是否通过我的Jest单元测试调用了“ super()”方法。

export class AppError extends Error {
  public name: string;
  public message: string;
  public status?: number;
  public data?: any;
  constructor(message: string, status?: number, data?: any) {
    super(); <-- this guy!!
    this.name = 'AppError';
    this.status = status || 500;
    this.message = message;
    this.data = data;
  }
}
Run Code Online (Sandbox Code Playgroud)

有什么办法可以测试吗?谢谢。

unit-testing super ecmascript-6 jestjs

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

为什么 instanceof 为 Javascript 中的子对象返回 false

我有扩展父类的子类。假设我从 Child 类中创建了一个新实例“child”。当我检查条件时child instanceof Child,它返回false。但是,child instanceof Parent返回 true。

为什么会这样?

编辑

所以我发现这只发生在我用 Error 类扩展 Child 类时。让我留下下面的代码示例。

class Child extends Error {
  constructor(message) {
    super(message);
  }
}
const ch = new Child();
console.log(ch instanceof Child);
Run Code Online (Sandbox Code Playgroud)

第二次编辑

class PullCreditError extends Error {
  public name: string;
  public message: string;
  public attemptsRemaining: number;
  constructor(message: string, attemptsRemaining: number) {
    super();
    Error.captureStackTrace(this, PullCreditError);
    this.name = 'PullCreditError';
    this.message = message;
    this.attemptsRemaining = attemptsRemaining;
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript oop inheritance instanceof typescript

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

猫鼬指数已经存在不同的选择

我正在为我的应用程序实现搜索结果视图.我发现mongoose内部提供带有$ text的全文搜索功能.

我把下面的代码放到Post.js上

PostSchema.index({desc: 'text'}); //for example
Run Code Online (Sandbox Code Playgroud)

这是我在路由文件route/posts.js中放入的代码

Post.find({$text: {$search : 'please work!'}}).exec(function (err, posts) {...}) 
Run Code Online (Sandbox Code Playgroud)

我想出的错误信息如下

Index with pattern: { _fts: "text", _ftsx: 1 } already exists with different options
Run Code Online (Sandbox Code Playgroud)

是否有任何机构知道如何处理这个错误并弄明白?谢谢.

javascript full-text-search mongoose mongodb node.js

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

如何查询具有多参数和谐波函数的 GSL ODE

我正在使用 GSL 研究非线性微分方程。问题是我对 C 语言很陌生。我只是将 GNU 站点上的示例修改为我现在感兴趣的方程式。

这是等式:

d2x/dt2 + r*dx/dy + cos(x) + v*cos(2*x+0.4) E1*sin(wt) + E2*sin(2*w*t+a) = 0
Run Code Online (Sandbox Code Playgroud)

我被卡住的是我不知道如何在代码中插入多个参数。此外,我不知道如何在这段代码中使用余弦或正弦函数。

我一直在谷歌上搜索,试图找出这个问题。我找不到任何可以帮助我的东西。

#include <stdio.h>
#include <gsl/gsl_errno.h>
#include <math.h>
#include <gsl/gsl_math.h>
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_odeiv2.h>

int func (double t, const double x[], double y[], void *params)
{
    double r = *(double *)params;
    double v = *(double *)params;
    double w = *(double *)params;
    double E1 = *(double *)params;
    double E2  = *(double *)params;
    double a  = *(double *)params;
    y[0] = x[1];
    y[1] …
Run Code Online (Sandbox Code Playgroud)

c nonlinear-functions gsl differential-equations

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

在 Mac OS 上运行的 apache 的 /usr/local/etc 与 /etc/apache2 之间的区别

嗨,我对 apache 和 mac 都很陌生。我已经通过 Homebrew 设置了 apache,据我目前所知,mac 上的 apache 运行在操作系统级别,但 apache 通过 Homebrew 运行在用户级别。我认为这就是为什么 mac apache 保留在 /etc 级别目录中,而 Homebrew apache 保留在 /user/local/etc 级别的原因。

但是,我发现这两个 httpd.conf 文件彼此不同。特别是我遇到了 php 无法在虚拟主机中呈现的问题。我试图解决这个问题,但似乎互联网上的每个解决方案都在谈论 mac apache 的 httpd.conf。

我对我现在正在做的事情感到很困惑。如果你们中的任何人都可以向我解释这些 apache 的工作方式有何不同,那就太好了。谢谢!

php apache macos homebrew

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

在c编程中处理大型数组

我正在研究非线性微分方程.我所做的是平均超过100个不同初始条件值的位置.

我在gsl中使用了odeiv.对于每个初始值,时间范围是4*10 ^ 7.然而,程序杀死,一旦我设置了10个不同的初始条件和10 ^ 6的时间范围.这是一种限制.

我的电脑有8个内核和16GB内存.我认为这不是那么大.

我将把编码的一部分.有人帮我这个吗?谢谢.

long long int i, j, k;
double const y_i = 0, dydt_i = 0;
double n = 10;
long long int tmax = 1000000;
double A[tmax];

for (j=0; j < n; j++)
{
    double y_j = y_i + 0.001*j;
    double dydt_j = dydt_i;
    t = 0.0;
    double y[2] = {y_j, dydt_j};
    gsl_odeiv2_system sys = {func, jac, 2, &params};
    gsl_odeiv2_driver * d = gsl_odeiv2_driver_alloc_y_new (&sys, gsl_odeiv2_step_rk8pd, 1e-6, 1e-6,     0.0);

  for (i=0; i< tmax; …
Run Code Online (Sandbox Code Playgroud)

c arrays nonlinear-functions ode gsl

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