小编yen*_*yen的帖子

“dispatch()”是什么意思/做什么,为什么当我们有 .then() 和 .catch() 时使用它

我是 ES6 和高级 javascript 新手。我见过使用 axios http 客户端的代码示例,如下所示:

axios.xxx(...).then((res) => dispatch(success(res)) , (err)=> dispatch(error(err)))
Run Code Online (Sandbox Code Playgroud)

而我正在做:

axios.xxx(...).then(function(res){...}).catch(function(err){...});
Run Code Online (Sandbox Code Playgroud)

我尝试在 MDN 上查找调度,但只找到了 DispatchEvent...这不一样吗?我问这个问题是因为虽然我的代码可以工作,但我发现我的 api 中的 http 错误代码(如 403 等)被 axios 作为错误处理,而我更喜欢自己在应用程序中处理它们。(更新:当我向这个问题添加调度标签时,我看到了含义的简短摘要,但我仍然很困惑)。

使用调度的原因或优点是什么?“dispatch()”是 axios、ES6 或 Nodejs 的一部分吗?谢谢。

dispatch node.js axios

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

Typescript:无法转换为通用“Record<string, string>”类型?

为什么打字稿不允许我投射以下内容:

interface foo {
  foofoo: string
  feefee: string
  faafaa: 'red' | 'blue'
}
Run Code Online (Sandbox Code Playgroud)

进入Record<string, string>?我怎样才能做到这一点?

我试过了:

  • 将字符串文字 red|blue 更改为仅string键入
  • 尝试过instanceOfFoo as Record<string, string>
  • 尝试将其更改为类型而不是接口

...没有任何快乐任何帮助表示赞赏

typescript

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

运行 tsc 命令什么都不做,忽略 tsconfig 文件?

我已将打字稿添加到我的项目中并创建了一个tsconfig.json. 我还不打算将所有 .js 文件更改为 .ts 文件,因此我将其放入allowJStsconfigtrue中。

但是当我运行时tsc它什么也没做。tsc -p .也什么都不做。 tsc --version是 3.8.3。最后我决定在单个文件上运行它:

tsc src/index.js
error TS6504: File 'src/index.js' is a JavaScript file. Did you mean to enable the 'allowJs' option?
Run Code Online (Sandbox Code Playgroud)

所以看起来它根本没有看到 tsconfig 文件?我究竟做错了什么?我在窗户上。

typescript

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

在 nextjs 中,“/api”路由的代码是否会在任何时候出现在浏览器中?如果是这样,有没有办法强制仅在服务器端执行?

我现在才意识到这里的nextjs 环境变量的行为,这与通常设置 NodeJS 应用程序的方式不同:

注意:.env 文件应包含在您的存储库中,而 .env*.local 应包含在 .gitignore 中,因为这些文件将被忽略。将 .local 文件视为保存机密的好地方,将非本地文件视为保存默认值的好地方。

因此,我正在考虑限制自己使用仅在构建时可用的秘密,以便在“后端”/api路由中使用。

但是/api路由的行为是否像真正的后端一样?由于 nextjs仅在必须时才是 SSR (?),我认为此 /api 代码也可能最终出现在浏览器中,从而暴露秘密?有没有办法强制代码仅在服务器端运行而不在浏览器中运行?我对 SSR 概念很陌生。我的“真正的”后端暂时不会启动。这不是一个非常重要的秘密,但仍然如此。谢谢。

environment-variables server-side-rendering next.js

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

terraform:无法设置vpc名称?

我开始学习地形。我这样创建了一个vpc:

resource "aws_vpc" "my-vpc" {
  cidr_block = "10.0.0.0/16"

  tags = {
    terraform = "true"
  }
}
Run Code Online (Sandbox Code Playgroud)

我以为它会my-vpc在管理控制台中命名,但事实并非如此。名字是空白的。并且在文档页面上没有“name”属性:当我尝试设置 a 时,name在应用过程中出现错误(此处不需要名为“name”的参数。)

我不敢相信你连名字都不会?!我缺少什么?

在此输入图像描述

amazon-web-services terraform terraform-provider-aws

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

GCP计算引擎-无法在端口80上侦听?

我创建了一个具有以下网络标记和防火墙规则的计算引擎: 在此处输入图片说明

在此处输入图片说明 因此,如果我正确理解这一点,则机器可以在端口80上侦听。我安装了node并创建了一个非常简单的http服务器,以查看是否可以通过http到达该框。在云控制台上通过ssh登录。当我尝试启动它(例如npm start运行服务器)时,它说:

Error: listen EACCES: permission denied 0.0.0.0:80

为什么?怎么解决?

我在某个地方读到低端口号通常仅限于root用户,因此我尝试sudo说它sudo: npm: command未找到,并且与sudo节点类似。

同样为什么在使用此类脚本创建服务器时,文章说它们是作为root执行的?这是怎么发生的,为什么当我启动计算机并以自己的身份登录时却不以root用户身份执行?是的,我对linux perms的理解非常新手。

谢谢...

node.js google-compute-engine google-cloud-platform

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

Azure函数应用中的context.log与console.log

在Azure函数应用程序的nodejs示例中context,该函数传递了一个obj,并且context.log可以使用console.log与输出消息相同的方式进行操作。

这两种方法之间有什么区别?使用哪种方法无关紧要?谢谢。

azure node.js azure-functions

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

配置多个下一个插件:withMDX、withBundleAnalyzer

我使用 next.config.js 中已附带的 tailwind 博客启动器启动了一个nextjswithBundleAnalyzer网站。

我现在正在尝试.mdx直接从页面获取文件。文档说我需要withMDX在我的 nextjs.config 文件中。怎样才能让两个人一起玩呢?我应该只保留其中之一还是另一个?我已经安装next-compose-plugins但不知道如何设置。

更新

这是我的下一个配置文件;它仍然失败。错误:

ready - started server on 0.0.0.0:3000, url: http://localhost:3000
TypeError: undefined is not a function
    at _withPlugins (/home/xxx/xxx/nodeapps/my-web/node_modules/next-compose-plugins/lib/index.js:17:22)
    at Object.<anonymous> (/home/xxx/xxx/nodeapps/my-web/next.config.js:11:18)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at loadConfig (/home/xxx/xxx/nodeapps/my-web/node_modules/next/dist/next-server/server/config.js:8:94)
    at async NextServer.loadConfig (/home/xxx/xxx/nodeapps/my-web/node_modules/next/dist/server/next.js:1:2962)
Run Code Online (Sandbox Code Playgroud)
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
TypeError: undefined is not a function
    at _withPlugins …
Run Code Online (Sandbox Code Playgroud)

reactjs next.js mdxjs

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

Git标签消失了

我检查了一个新分支并将其命名为v0.1.1。我更改了版本以package.json匹配,并且还用来git tag创建一些标签。我最终将此分支合并到 master 中,认为标记/版本控制活动会以master某种方式“传播”。它们不但没有传播出去,还仿佛消失了,就好像我什么都没做一样。

有哪些步骤:

  • 在本地将提交标识为感兴趣的版本(无论它只是一个有用的基线还是一个实际的版本 - 区别重要吗?那是两个单独的命令吗?)
  • 确保推送后任何此类版本控制信息都可以在 GitHub 中立即识别?
  • 如果上述过程是错误的(即是否有正确/更好的方法来处理这一切)。

versioning git github

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