小编Jos*_*ana的帖子

无法在VS Code中设置Breakpoints调试节点Typescript

我看到同样问题的其他问题,但我已经尝试了所有其他解决方案,没有任何工作在我的最后.

我有一个打字节点应用程序,我正在尝试在VSCode中调试.

我的launch.json是

 "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "attach",
      "name": "Attach",
      "port": 5858,
      "sourceMaps": true,
      "outFiles": ["${workspaceRoot}/build/**/*.js"]
    }
  ]
Run Code Online (Sandbox Code Playgroud)

这对我的应用程序很好.我可以暂停和恢复,所有工作正常,但我无法进入代码或设置断点.

我正在通过gulp nodemon运行我的应用程序

nodemon({
    script: 'build/server.js',
    watch: 'src',
    ext: 'ts',
    tasks: ['clean', 'compile'],
    exec: 'node --debug'
});
Run Code Online (Sandbox Code Playgroud)

控制台管道输出

监听[::]的调试器:5858

现在,当我试图设置一个断点时,它说

未验证的断点,断点被忽略,因为找不到生成的代码(源映射问题?).

更新;

我也试过使用webRoot其他帖子周围建议的项目,打字验证抱怨说Property webRoot is not allowed.,我试着继续无济于事.

我正在运行Node v6.11.5和VS Code v1.23.0

我在帖子中看到人们调用运行.scripts标签以获取更多信息帮助解决但是当我通过键入.scripts调试控制台时它说invalid expression: unexpected token .

我的tsconfig.json是

"compilerOptions": {
    "outDir": "build",
    "target": "es6",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "typeRoots": ["node_modules/@types"] …
Run Code Online (Sandbox Code Playgroud)

debugging node.js typescript visual-studio-code vscode-debugger

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

在 ELB 后面的 VPC 中调用 AWS Elastic Beanstalk 服务器的首次加载时间非常慢

我在 Application Load Balancer 后面有一个 Elastic Beanstalk 服务器,全部在 VPC 内。离开服务器一段时间后第一次调用服务器需要很长时间。就好像实例正在启动一样!而不是已经在...

此问题不会出现在本地,也不会出现在 VPC 之外,它只会发生在 AWS 上的 VPC 中,因此我的配置中的某些内容必须关闭。

VPC 有 3 个公有子网和 3 个私有子网,在同一个可用区,公有子网都有自动分配公网IP

子网 可用区 自动分配公共 ip

我已将这些分配给我的 Elastic Beanstalk 环境中的网络设置,将公共子网分配给公共负载均衡器,然后将私有子网分配给私有实例。

负载均衡器设置 实例设置

我已将 Auto Scaling 负载平衡组设置为最少 3 个实例,并确认它们正在运行

自动伸缩组 实例 地位

尽管如此,在离开站点一段时间后......对服务器的第一次新调用始终需要超过一分钟,然后效果很好。我想我只是错过了一些小东西,但无法弄清楚它是什么......

提前致谢!

我确信这不是应用程序问题,因为在第一次加载时调用需要超过一分钟,但在后续加载中它几乎是即时的,并且这种行为在几天内保持不变。在本地,我从来没有遇到过这个问题。在 VPC 之外,我从来没有遇到过这个问题。

首次/慢速加载(将应用程序单独放置一夜之后) 慢负载

第二次/快速加载(在上述之后刷新) 快速加载

更新

AWS 支持建议我取消子网与路由表的关联。我这样做了,现在所有公共和私有子网都显示了当前的路由表 Main。但是现在,所有对我的服务器的调用都失败了,而不是花很长时间!

我尝试通过边缘关联将该 VPC 中的互联网网关附加到路由表,但我收到错误消息

路由表包含不受支持的路由目的地。不受支持的路由目的地不如 VPC 本地 CIDR 具体或不重叠

有一个公共子网,其 CIDR 与 Internet 网关重叠(子网为 10.1.0.0/24,网关为 10.1.0.0/24)。我尝试手动将其与主路由表相关联,但仍然出现相同的错误

amazon-web-services amazon-vpc amazon-elastic-beanstalk

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

部署到Azure后,EF代码首次迁移未运行

我有两个用于迁移的文件夹(AuthContext和UserProfileContext),每个文件夹都有自己的迁移和一些后续运行的自定义sql,用于数据迁移等等.

这在使用包管理器控制台时工作正常.一世

  1. 从生产中恢复
  2. 运行Update-Database -ConfigurationTypeName Migrations.Auth.Configuration
  3. 运行Update-Database -ConfigurationTypeName Migrations.UserProfile.Configuration

然后在新数据库中一切都很开心,迁移执行的数据在需要的地方洗牌.

我试图通过以下方式测试发布的迁移:

  1. 在dev数据库上恢复生产
  2. 单个连接字符串(所有上下文使用相同的)指向dev数据库
  3. 发布到azure网站
  4. 选中"应用代码优先迁移"复选框
  5. 选择单个连接字符串

好的,它发布得很好; 然而,当我去看数据库时,什么也没发生!它没有创建必要的表,列或数据移动.

TLDR; 发布到Azure后,代码优先迁移未运行

更新1 我尝试了下面的任何组合:只有一个连接字符串,所以我猜这不是问题,并检查执行迁移. 在此输入图像描述

在发布api运行但没有进行数据库更改.我想也许我需要首先点击它,但是当我尝试使用api(现在当然依赖于新的数据库设置)时我只是得到随机错误,并且数据库仍然没有改变.

我已经看到有一些关于需要在我的Startup类中添加内容的引用,但我不知道如何继续.

更新2 我通过在我的连接字符串中添加"Persist Security Info = True"解决了一个问题.现在它实际连接到数据库并调用我的API; 但是,没有正在运行的迁移.我将调试器附加到Azure开发环境并逐步完成...在我的第一个数据库调用它进入有问题的迁移的Configuration类,然后barfs我无法追踪错误.

public Configuration()
{
    AutomaticMigrationsEnabled = false;
    MigrationsDirectory = @"Migrations\Auth";
    ContextKey = "AuthContext";
}
Run Code Online (Sandbox Code Playgroud)

更新3

好的,挖了下来,第一次碰到数据库我们就错了.是的,这是有道理的,因为模型已经改变,但我已经进行了迁移,启用和检查!同样,它在从包管理器控制台运行"Update-Database"时工作正常,但在发布到Azure期间使用"执行代码优先迁移"时却没有

自创建数据库以来,支持'AuthContext'上下文的模型已更改.请考虑使用"代码优先迁移"来更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269).

更新4 好的我在这里找到了根本问题.VS正在我的一个数据库上下文中为databaseInitializer设置额外的web.config attrib,未提及的那个实际上是从我的应用程序中首先命中的.

所以现在我必须弄清楚如何让它包含多个上下文,或者将我的所有内容组合到一个上下文中.

entity-framework azure ef-code-first ef-migrations

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

无法卸载 Angular CLI 版本

我一直在尝试使用最新的 CLI 在 Angular6 中创建一个新项目,但一直无法更新。为了解决这个问题,我只是试图删除 Angular CLI 并重新开始,但即使这样也行不通!

从一个随机文件夹(其中没有项目),如果我运行ng -v我得到

Angular CLI: 1.5.4
Node: 9.4.0
OS: darwin x64
Angular:
...
Run Code Online (Sandbox Code Playgroud)

我很容易尝试运行以下命令;

npm uninstall -g angular-cli
npm uninstall --save-dev angular-cli

npm uninstall -g @angular/cli
npm cache verify
Run Code Online (Sandbox Code Playgroud)

然后另一个ng -v,我希望它抱怨没有找到 ng ,而是显示相同的东西!

Angular CLI: 1.5.4
Node: 9.4.0
OS: darwin x64
Angular:
...
Run Code Online (Sandbox Code Playgroud)

我在想这可能与我使用 NVM 来管理我的 Node 版本有关,但我找不到任何东西。

我也试过 npm install -g @angular/cli@latest上述所有内容,但是当我检查我的 ng 版本时,它仍然显示相同的 1.5.4 而不是最新版本。

一些信息;

  1. 我什至不在项目目录中,所以没有 node_modules 并且一切都是全局的 -g
  2. 我在 OSX 上并使用 NVM 来管理我的 Node …

angular-cli angular

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

全高度flexbox,随内容增长

我有一个基本的两列flexbox布局(侧面菜单,标题,主要内容).

我希望我的侧边菜单有一个固定的宽度,但高度增加到整个页面的100%.对于我的主要内容,有一个固定的高度标题和一个动态高度内容窗格,我希望该窗格的背景也填充100%的可用高度.

  • 如果屏幕的高度足够高,可以包含所有内容,那么一切都很有效
  • 如果屏幕的高度不能包含所有内容(例如:需要滚动),则1)菜单的背景仅下降到原始视口的底部; 2)主要内容的背景较低[但仍然不是全高]因为标题推动它一些.

当主要内容超出可用高度并需要滚动时,背景不会一直延伸到页面

查看黑色,灰色和控制台窗口之间的交叉点...左侧黑色bg是具有静态内容的菜单,右侧灰色bg是具有增长内容的主要内容,第二个两个图像中的底部白色bg是wtf?

  1. 在加载数据之前,根本不向下滚动
  2. 在加载数据之前,向下滚动到页面末尾
  3. 加载数据后,向下滚动到页面末尾

我不知道高度100%附加到html,身体实际上是在做什么,因为删除它们不会改变行为,仍然与下面的截图相同.

预加载预卷

预加载后滚动

postload postscroll

请看这里的小提琴

.flex-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
}

.flex-row.flex-fill {
  height: 100%;
}

.flex-col {
  display: flex;
  flex-direction: column;
  flex-flow: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
}

.flex-col.flex-fill {
  width: 100%;
}

.flex-right {
  margin-left: auto;
}

.menu {
  width: 200px;
  background-color: blue;
  color: $white;
  padding: 15px;
  height: 100%;
  flex-grow: 1;
}

.header {
  background-color: red;
  padding: 15px;
  font-family: italic;
  font-size: 1.5em;
}

.main-content …
Run Code Online (Sandbox Code Playgroud)

html css css3 flexbox

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

将服务注入另一个服务(单例),Angular2 时遇到问题

我有两个服务,都是@Injectable。ServiceA 通过 Providers 数组提供给组件,并且在任何地方都能很好地工作。ServiceB 是一个单例,位于其模块的 Providers 数组中,在任何地方都能很好地工作。ServiceA 需要保持不是单例,ServiceB 需要保持单例。

我的问题是现在我需要从 ServiceB 访问 ServiceA,但不知道如何访问它。似乎我无法将非单例服务注入单例。

我遇到的一切都告诉我将服务放在引导程序或模块声明中,但正如我所提到的,我不能这样做,因为我需要 ServiceA 作为非单例行为。

// module setup
... providers: [ServiceB]

// non-singleton
@Injectable()
export class ServiceA

// singleton
@Injectable()
export class ServiceB {
  constructor(ServiceA)  // <-- this is the problem area, need to get ServiceA here
Run Code Online (Sandbox Code Playgroud)

我曾尝试做类似构造函数(Inject(ServiceA) serviceA) 的事情,但似乎遇到了同样的错误

错误:DI 错误 ServiceA 没有提供程序!

  1. 如何将非单例服务“提供”为单例服务,两者都是@Injectable?

dependency-injection typescript angular

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

已验证地址的 Amazon SES 错误“MessageRejected:电子邮件地址未验证”

我有一个 Amazon SES 连接设置,当前处于沙盒模式。

我有我的电子邮件地址,我使用真实的电子邮件地址,但在这篇文章中,我们将其称为myemail@arealdomain.com。它已在 SES 中验证,在电子邮件选项卡中,其旁边显示“已验证”。

我有一个 Node 应用程序,它通过 Nodemailer 发送邮件

this.transporter = nodemailer.createTransport({
  SES: new aws.SES({ region: "us-east-1" })
});

this.defaultFromAddress = 'myemail@arealdomain.com';
Run Code Online (Sandbox Code Playgroud)

然后我用 this.transporter.sendMail 发送它,所有电子邮件地址都相同myemail@arealdomain.com

当我尝试发送电子邮件时(收件人和发件人地址相同,已在 SES 上验证)

发送时我收到以下错误

Error: MessageRejected: Email address is not verified. The following identities failed the check in region US-EAST-1: myemail@arealdomain.com
Run Code Online (Sandbox Code Playgroud)

有什么想法如何修复吗?

更新

根据下面的对话,我三次确认我的代码和 AWS 中的区域和电子邮件地址都是正确的。往返地址相同,并且在 AWS 中列为“已验证”。我仍然遇到这个问题,完全不确定如何继续

更新2

使用相同的电子邮件地址,从 SES 仪表板发送“测试电子邮件”效果很好......

更新3

事情变得更奇怪了!所以我们昨天退出了沙盒模式,现在是一个普通的 SES 帐户。无论我使用什么发送/发件地址组合,都会出现完全相同的错误。我总是使用“经过验证的”地址作为发件人,无论收件人如何(即使它也是经过验证的地址),我都会得到完全相同的错误

错误:MessageRejected:电子邮件地址未验证。以下身份在 US-EAST-1 区域中未通过检查:myemail@arealdomain.com

amazon-ses

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

更改 Material-UI TextField 上的边框颜色

这应该很简单,但由于某种原因,我无法弄清楚如何更改 TextField 上的边框颜色

<TextField style={{ borderColor: 'white', width: '100px' }} variant="outlined" />
Run Code Online (Sandbox Code Playgroud)

它基本上只是从文档中复制出来的,轮廓上是白色的,所以我无法弄清楚到底是什么把它搞砸了。

我试图在 jsfiddle 或其他东西上重现,但找不到可以让我导入 TextField 模块的

屏幕截图

reactjs material-ui

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

在Node Typescript中导入JSON文件

我已经尝试了所有在网上找到的解决方案,但似乎无法解决具体问题。

我正在尝试将静态.json文件导入到TypeScript中的节点控制器中。

我得到的错误是

找不到模块'./data.map.json'

我已经检查了该路径100次,这绝对是正确的。我已经尝试了require vs import的每种组合,以及可以在tsconfig.json中找到的每个选项,这是我认为问题所在的地方。

以下是显示我的设置的干净的最小示例。如何在Typescript应用程序中导入静态json文件?

控制者

import * as data from "./data.map.json";
Run Code Online (Sandbox Code Playgroud)

打字

declare module "*.json" {
    const value: any;
    export default value;
}
Run Code Online (Sandbox Code Playgroud)

tsconfig.json

{
  "compilerOptions": {
    "outDir": "build",
    "target": "es6",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "typeRoots": ["node_modules/@types"],
    "paths": {
      "*": ["typings.d.ts"]
    }
  },
  "files": [
    "typings.d.ts"
  ],
  "include": [
    "src/**/**.ts",
    "test/**/**.ts"
  ],
  "exclude": [
    "node_modules"
  ],
  "compileOnSave": false
}
Run Code Online (Sandbox Code Playgroud)

json node.js typescript

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

通过溢出隐藏来计算隐藏元素的数量

我有一个带有重复元素的全宽 div。在溢出时,我隐藏溢出的内容并且不显示空白。我的问题是我想计算隐藏项目(或我猜显示的项目)的数量,但不知道如何计算。

您可以在https://codepen.io/joshuaohana/pen/aqPJMr查看基本示例

在这种情况下,管理隐藏的 css 是

div {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  white-space: nowrap;
  overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

如果删除溢出线,您会得到一个滚动条,将其放回去,就没有滚动条了。

我需要的是一种方法,当溢出设置为隐藏时,计算​​丢失溢出部分中隐藏的项目。

我发现的唯一事情是尝试计算哪些元素已隐藏,但这不适用于溢出项目。我找不到任何可以搜索的不同限定符。

javascript css

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