小编Bra*_*don的帖子

如何在已经从fetch返回的浏览器上下载ReadableStream

我正在从服务器接收 ReadableStream,从我的 fetch 调用返回。

返回一个 ReadableStream 但我不知道如何从这个阶段触发下载。我无法在 href 中使用 url,因为它需要授权令牌。

我不想fs在客户端上安装,那么我有哪些选择?

  try {
    const res = await fetch(url, {
      method: 'GET',
      headers: {
        Authorization: `Bearer ${token}`,
        'Content-Type': 'application/octet-stream'
      }
    });

    const blob = await res.blob();

    const newBlob = new Blob([blob]);
    const newUrl = window.URL.createObjectURL(newBlob);

    const link = document.createElement('a');
    link.href = newUrl;
    link.setAttribute('download', 'filename');
    document.body.appendChild(link);
    link.click();
    link.parentNode.removeChild(link);

    window.URL.revokeObjectURL(newBlob);
  } catch (error) {
    console.log(error);
  }
Run Code Online (Sandbox Code Playgroud)

更新 1

我将文件转换为 Blob,然后将其传递给新生成的 href。已成功下载文件。最终结果是 ReadStream 内容作为 .txt 文件。

意思是这样的

x:ÚêÒÓ%¶âÜTb?\܃
Run Code Online (Sandbox Code Playgroud)

javascript browser download fetch

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

使用 Winston 设置 AWS Cloudwatch

我一直在阅读各种文章/文档并观看有关此主题的一些视频。我的问题是它们都以一种或另一种方式发生冲突。

我的目标是使用 winston 将所有 console.logs/error 消息从我的 ec2 服务器发送到 Cloudwatch,这样就不会在 ec2 终端本身上记录日志。

混淆点:

  1. 如果我使用winston-aws-cloudwatchwinston-cloudwatch,我是否仍然需要在 AWS 上设置 IAM 用户,或者这些会在 Cloudwatch 中自动生成日志吗?
  2. 如果我按照AWS 文档设置 Cloudwatch,它会自动将任何将是 console.logs 从 EC2 服务器流式传输到 Cloudwatch 还是两者都做?如果是第一个,那么我不需要温斯顿?
  3. 我可以将日志从我的本地开发服务器发送到 Cloudwatch(仅用于测试目的,一旦确定它可以工作,然后我将测试暂存并最终将其移至生产环境)还是必须来自 EC2 实例?
  4. 我假设 AWS Cloudwatch 密钥与我用于账户其余部分的 AWS 密钥相同?

当前代码:

var winston = require('winston'),
  CloudWatchTransport = require('winston-aws-cloudwatch');

const logger = new winston.Logger({
  transports: [
    new (winston.transports.Console)({
      timestamp: true,
      colorize: true
    })
  ]
});

const cloudwatchConfig = {
  logGroupName: 'groupName',
  logStreamName: 'streamName',
  createLogGroup: false,
  createLogStream: true, …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services amazon-iam winston amazon-cloudwatch

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

psql:符号查找错误:psql:未定义符号:PQsetErrorContextVisibility

我将 postgres 版本从 9.2.24 切换到 9.6,因为我需要 jsonb 兼容性以及其他最新功能。我在 centos 7 上运行虚拟机。

我决定擦除所有现有的 postgres 实例(由于它是临时的,所以几乎是空的),然后安装了 9.6。但是,一旦我进入 postgres shell,我在输入时收到以下错误psql

psql: symbol lookup error: psql: undefined symbol: PQsetErrorContextVisibility

我认为我需要更改 psql 正在寻找的路径,以便它正确连接,但我不确定将其指向哪里。

注意:ls在 postgres bash 中显示 2 个目录和 1 个文件9.6 data and initdb.log

postgresql postgresql-9.2 centos7 postgres-9.6

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

尽管我有域设置,但 Digital Ocean Let's Encrypt 域列表为空

我已将主要域名注册商之一的域名连接到数字海洋。我可以通过域名通过 url 访问该网站,但我想使用 ssl 保护它。我已决定创建一个负载均衡器,但是,当我需要选择用于创建 ssl 证书的域时,列表中没有域。当我尝试通过那里创建一个新的时,它告诉我它Must be a valid registered domain name

不管怎样,当我尝试使用 Let's Encrypt 搜索它时,它从未传播我知道存在的域。

我的域有 A 和 AAAA 记录。

为什么我的域名没有显示在列表中?

ssl-certificate digital-ocean

5
推荐指数
0
解决办法
116
查看次数

mongodb /var/log/mongodb/mongod.log 阻止 mongod 启动

我在 centos 7 aws ec2 实例上使用 mongodb 3.6.3。

2个问题(只需要回答一个):

  1. 如果通过 cli 手动完成,为什么 --logpath 会阻止 mongod 命令 sudo mongod --storageEngine etc
  2. 为什么要sudo service mongod status显示它是失败的?

当我运行下面的命令时,(因为当前sudo service mongod start不起作用,但下面的工作)当我指定时它会失败,--logpath但没有它会运行。不幸的是,当我在没有它的情况下运行它时,我的所有日​​志最终都位于/绝对错误的位置。

sudo mongod --storageEngine wiredTiger --dbpath /data --bind_ip 127.0.0.1,apiIP --logpath /var/log/mongodb/mongod.log --auth --fork

下面是当我尝试按原样运行上面那条线时会发生什么。

I CONTROL [main] log file "/var/log/mongodb/mongod.log" exists; moved to "/var/log/mongodb/mongod.log.2018-03-16T15-16-01".

据我所知,它与当前存在的冲突

仅供参考,sudo service mongod status返回:

mongod.service - mongodb database
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: failed (Result: …
Run Code Online (Sandbox Code Playgroud)

database amazon-ec2 mongodb amazon-web-services centos7

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

Postgres对象数组错误`错误:无法确定多态类型,因为输入类型为"unknown"

我一直试图在postgres中循环一个对象数组.但是,我反复收到错误error: could not determine polymorphic type because input has type "unknown".我认为这与我传递给看起来像这样的函数的值有关.

[
  {
    "number": 1,
    "letter": "a"
  },
  {
    "number": 2,
    "letter": "b"
  }
]
Run Code Online (Sandbox Code Playgroud)

功能如下.我已经制作了类型ANYARRAY,我认为它应该完全按照名称暗示.我不介意有更具体的选择.

CREATE OR REPLACE FUNCTION "CheckArrayOfObjects" (
  "@arrayOfObjects"           ANYARRAY
)
RETURNS void AS
$func$
DECLARE "e" JSONB;
BEGIN
  FOR "e" IN json_array_elements("@arrayOfObjects")
  LOOP
    RAISE NOTICE 'Checking Item %', "e";
  END LOOP;
END;
$func$ LANGUAGE PLPGSQL;
Run Code Online (Sandbox Code Playgroud)

我也尝试过FOREACH,但它并没有更好.我认为问题在于传入的值,所以不确定修改循环是否会做任何事情.

arrays postgresql json plpgsql jsonb

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

如何将变量传递到 graphql/apollo 的 cy.request 中而不需要字符串插值

目前,以下方法有效,但我知道这是不好的做法,我不想在将来因这种实现而遇到问题。

export const loginQuery = ({ email, password }) => `
  mutation login {
    login(email: "${email}", password: "${password}") {
      authToken
    }
  }
`;

export default ({ url, method, userPath }) => {
  cy.fixture(userPath).then(res => {
    const query = loginQuery(res);
    cy.request({
      method,
      url,
      headers: { 'Content-Type': 'application/json' },
      body: { query },
      failOnStatusCode: false
    });
  });
};
Run Code Online (Sandbox Code Playgroud)

如何正常传入变量而不是通过字符串插值手动执行?

我这样写的原因是因为我不能使用react-apollo/ graphql-tag。我已经尝试过,但是graphql需要react-apollo将其包装在一个不适用于此 cypress 上下文的组件中。

注意:上述实现不适用于对象/数组。我需要手动传入突变中写出的对象中的特定键,而不仅仅是一个变量来表示整个对象。这显然是一个问题。

javascript string-interpolation apollo graphql cypress

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