小编Jim*_*ton的帖子

使用key,startkey时,CouchDB视图抛出了无效的UTF-8 JSON错误

我在CouchDB中定义了一个非常基本的视图:

function(doc) {
  if(doc.date && doc.erc) {
    emit(doc.date, doc.erc);
  }
}
Run Code Online (Sandbox Code Playgroud)

它只是按日期提取所有文件和排序.

我试过追加

?startkey="2010-05-01"
Run Code Online (Sandbox Code Playgroud)

到URL和Futon只是浏览器重定向.

我也尝试过使用CURL:

curl -X GET http://localhost:5984/plots/_design/by_date/_view/by_date?startkey="2010-05-01"
Run Code Online (Sandbox Code Playgroud)

这引发了一个错误:

{"error":"bad_request","reason":"invalid UTF-8 JSON"}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?这应该是一个非常基本的事情.

谢谢,-Jim

json curl couchdb

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

如何调试 Quarkus/SmallRye 客户端请求

我有一个看起来像这样的请求:

@Path("/v1")
@RegisterRestClient
@Produces("application/json")
public interface VaultClient {
    @POST
    @Path("/auth/jwt/login")
    @Consumes("application/json")
    String getVaultToken(LoginPayload loginPayload);
}
Run Code Online (Sandbox Code Playgroud)

LoginPayload 只是一个简单的 POJO:

public class LoginPayload {
    private String jwt;
    final private String role = "some-service";

    public void setJwt(String _jwt) {
        this.jwt = _jwt;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试通过服务调用此端点时:

public String getServiceJwt() {
    String loginJwt = getLoginJwt();
    LoginPayload loginPayload = new LoginPayload();
    loginPayload.setJwt(loginJwt);
    try {
        System.out.println(loginPayload.toString());
        String tokenResponse = vaultClient.getVaultToken(loginPayload);
        System.out.println("##################");
        System.out.println(tokenResponse);
    } catch (Exception e) {
        System.out.println(e);
    }
    return vaultJwt;
}
Run Code Online (Sandbox Code Playgroud)

我得到一个 400:

javax.ws.rs.WebApplicationException: Unknown error, …
Run Code Online (Sandbox Code Playgroud)

java microprofile quarkus

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

Nest.js 处理 HttpService 的错误

我正在尝试测试 NestJS 内置的 HttpService (基于 Axios)。不过,我在测试错误/异常状态时遇到了麻烦。在我的测试套件中,我有:

let client: SomeClearingFirmClient;

  const mockConfigService = {
    get: jest.fn((type) => {
      switch(type) {
        case 'someApiBaseUrl': {
          return 'http://example.com'
        }
        case 'someAddAccountEndpoint': {
          return '/ClientAccounts/Add';
        }
        case 'someApiKey': {
          return 'some-api-key';
        }

        default:
          return 'test';
      }
    }),
  };

  const successfulAdd: AxiosResponse = {
    data: {
      batchNo: '39cba402-bfa9-424c-b265-1c98204df7ea',
      warning: '',
    },
    status: 200,
    statusText: 'OK',
    headers: {},
    config: {},
  };

  const failAddAuth: AxiosError = {
    code: '401',
    config: {},
    name: '',
    message: 'Not Authorized',
  }

  const …
Run Code Online (Sandbox Code Playgroud)

rxjs axios nestjs

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

AngularJS将服务注入多个控制器

我在自己的模块中定义了一个服务:

angular.module('foteDatasetsService', [])
  .factory('foteAPIservice', function($http) {

    var foteAPI = {};

    foteAPI.getDatasets = function() {
      return $http({
        method: 'JSONP',
        url: 'http://localhost:8080/datasets?callback=JSON_CALLBACK'
      });
    }

    return foteAPI;
  });
Run Code Online (Sandbox Code Playgroud)

在另一个模块中,(在另一个文件中)我有一个控制器,我想用它:

angular.module('foteRequests').controller('foteRequestsController',
  ['$scope', function foteRequestsController($scope, foteAPIservice) {

    //snip other stuff

    $scope.datasets = [];

    foteAPIservice.getDatasets().success(function (response) {
      //Digging into the response to get the relevant data
      $scope.datasets = response;
      console.log(response);
    });

]);
Run Code Online (Sandbox Code Playgroud)

我在一个名为init .js 的文件中有一个init模块,它包含如下依赖项:

'use strict';

angular.module('foteRequests', ['foteDatasetsService']);
Run Code Online (Sandbox Code Playgroud)

它看起来并不像实际上将foteDatasetsService注入控制器.如果我运行该应用程序,我收到一个错误:

Cannot call method 'getDatasets' of undefined
Run Code Online (Sandbox Code Playgroud)

因此,如果我通过在控制器中包含foteDatasetsService来强制解决问题,如下所示:

angular.module('foteRequests').controller('foteRequestsController', ['$scope',
'foteDatasetsService', function foteRequestsController($scope, foteAPIservice) {
... …
Run Code Online (Sandbox Code Playgroud)

dependency-injection angularjs

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

在使用 Quarkus 进行本地开发期间注入不同的 Bean

使用 Spring 和 Micronaut,有非常简洁的方法可以根据应用程序运行的环境/配置文件来注入不同的 bean。我正在尝试对 Quarkus 做同样的事情。

我读过这篇文章: https: //quarkus.io/blog/quarkus-dependency-injection/。这个 StackOverflow 帖子中提到了这个过程:How can I override a CDI bean in Quarkus for test? 。最后一篇文章说,“在测试目录中创建 bean”。

我的问题略有不同。我想在“开发”时注入一个bean。在生产中,我想注入默认的 bean。从文档中,我看不出有什么方法可以让应用程序做出这种区分。

如果我有一个像这样的默认类:

@DefaultBean
@ApplicationScoped
class ProdProvider : SomeProvider {}
Run Code Online (Sandbox Code Playgroud)

我想像这样覆盖它:

@Alternative
@Priority(1)
class DevProvider : SomeProvider {}
Run Code Online (Sandbox Code Playgroud)

我怎样才能只在开发模式下发生这种情况?

在一种情况下,我有一个凭据提供程序类,用于在本地开发时设置 Google 的 PubSub 模拟器。在生产中,我使用一个实现相同接口的类,但它是一个真正的凭据提供程序。导致我问这个问题的特殊情况是一个实现一种方法的类:

@ApplicationScoped
class VaultLoginJwtProvider : LoginJwtProvider {
  @ConfigProperty(name = "vault.tokenPath")
  private val jwtPath: String? = null

  companion object {
    val logger: Logger = LoggerFactory.getLogger("VaultTokenProvider")
  }

  override fun getLoginJwt(): Optional<String> {
    logger.info("Using …
Run Code Online (Sandbox Code Playgroud)

cdi quarkus

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

如何确定Ruby中的负浮点数是否介于两个其他负数之间

如果我这样做,为什么呢?

-102.between?(-100,-105)
Run Code Online (Sandbox Code Playgroud)

在Ruby中,它返回false?

-102确实在-100到-105之间,对吗?

我试图用经度坐标(在我的半球将是负数)这样做,所以例如如果:

ilong = -102.560
if ilong.between?(-100.000,-105.000) then utmzone = 10 end
puts utmzone
Run Code Online (Sandbox Code Playgroud)

应该返回10.

我该如何做到这一点?

-Jim

ruby

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

将click处理程序附加到动态生成的锚标记

我动态生成一些标记并将其注入DOM,如下所示:

content+='<td><a class="reportLink" onclick="showReport();return false;" href="'+layerResults.features[i].attributes['Information_External']+'">Info</a></td>';
Run Code Online (Sandbox Code Playgroud)

我知道使用jQuery附加click处理程序而不是使用内联处理程序会更好.

问题是,即使使用内联处理程序和这样的函数:

function showReport() {
  console.log('stopped');
}
Run Code Online (Sandbox Code Playgroud)

仍然不会阻止链接从我的页面导航.

第二个问题是,当我尝试使用时

jQuery('.reportLink'.on('click', function(e) {
  e.preventDefault();
  console.log('clicked');
});
Run Code Online (Sandbox Code Playgroud)

事件永远不会附加.我正在使用jQuery 1.7.2.

这让我有点疯狂,因为这是一个简单的任务,我已经在jQuery <= 1.5中完成了大量的事情.

javascript jquery

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