小编lon*_*nix的帖子

为Node / Express / Typescript和Angular设置一个项目

我是.NET开发人员(ASP.NET Core等),所以我习惯于使用服务器和客户端代码来处理单个项目。我想对Node / Express(使用Typscript)和Angular做同样的事情。

我已经使用Angular的CLI查看了Angular的教程,并使用了它的生成器查看了Node / Express的教​​程。因此,我了解如何使它们独立工作,但我不确定如何同时使用它们来构建单个项目。

根据经验,我期望这样的事情:

  • .git
  • node_modules
  • client
    • src
    • 与Angular相关的配置
  • server
    • src
    • 与Node / Express / Typescript相关的配置
  • package.json
  • 与项目整体相关的配置

但是,在MEAN堆栈中有许多活动部件,这令人困惑。我不确定在哪里放置各种打字稿文件,配置文件等。以及如何为给定的每个node_modules级别运行开发服务器。

有一些对此存在疑问的问题,或者对此有批评,或者已经过时了(Node世界变化如此之快!)。但是,我想知道的是不同的:

如何在同一项目中设置Node / Express(使用Typescript)和Angular:

  • 这样他们就可以提交到同一个git repo
  • 所以我可以使用相同的IDE实例处理它们
  • 所以我仍然可以使用快速和有角度的脚手架工具(CLI /发电机/等)
  • 因此在开发时ng servenode app服务器仍然可以使用
  • (也欢迎任何示例代码或存储库)

node.js express typescript asp.net-core angular

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

在 Node/Express 中从长时间运行的 POST 中提前返回

我是 Node/Express 的新手。我有一系列长期运行的流程,例如: post to Express endpoint -> save data (can return now) -> handle data -> handle data -> handle data -> another process -> etc.

一个典型的POST:

app.post("/foo", (req, res) => {
  // save data and return
  return res.send("200");
  // but now I want to do a lot more stuff...
});
Run Code Online (Sandbox Code Playgroud)

如果我省略了return那么更多的处理将会发生,但即使我是这个堆栈的新手,我也可以说这是一个坏主意。

我想要的只是接收一些数据,保存并返回。然后我想开始处理它,并调用其他进程,调用其他进程等。我不希望原始 POST 等待所有这些完成。

我需要在进程中执行此操作,因此我无法保存到队列并在之后单独处理它。

基本上我想将数据的接收和处理分开,正在进行中。

使用 Node/Express 有哪些可用选项?

mediator publish-subscribe cqrs node.js express

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

为什么不是所有的 Angular 包都声明为 devDependency?

我知道节点/快递。dependencies我知道和之间的区别devDependencies

我正在学习角度。我已经看完了官方教程。

我认为有角度的应用程序在开发时被编译成一组静态文件。这些文件被上传到某个服务器。一旦客户端下载它们,所有操作都会在客户端中发生,除非它到达我的节点/express 服务器获取数据。

所以我不明白为什么脚手架的角度项目有package.json和。我假设所有内容都在 中,因为运行时没有,只有引导文件,然后是所有已编译的 javascript。dependenciesdevDependenciesdevDependenciespackage.jsonhtml

我显然误解了部署阶段。有不对的地方请指正。

angular

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

访问linux托管的ASP.NET Core 2.x web应用程序(无需nginx)

我的 ASP.NET Core 2.1 Web 应用程序在我的开发设置上完美运行。现在我想在生产中测试它。

\n\n

生产服务器是Ubuntu 18。我按照说明进行操作。我还不想设置 nginx,只是做一些快速测试,说明如下:

\n\n
\n

“带有或不带有反向代理服务器的配置\xe2\x80\x94\xe2\x80\x94 都是 ASP.NET Core 2.0 或更高版本应用程序的有效且受支持的托管配置”。

\n
\n\n

所以我构建并发布了我的项目:dotnet publish --configuration Release. \n然后在服务器上:

\n\n
    \n
  • 安装 dotnet 运行时
  • \n
  • 将文件复制到服务器 ( /var/www/myapp)
  • \n
  • 开放的端口:sudo uwf allow 5000/tcp 80/tcp
  • \n
  • 运行dotnet MyApp.dll(也尝试过sudo dotnet MyApp.dll
  • \n
\n\n

它运行时没有错误/警告,并表示它正在监听http://localhost:5000.

\n\n

在我的本地计算机上,我尝试了http://serveripaddress(和http://serveripaddress:5000)但什么也没得到(“无法连接”)。我可以通过 ssh、sftp 等访问该服务器 - 只有 http 不起作用。

\n\n

我究竟做错了什么?

\n

asp.net ubuntu kestrel-http-server asp.net-core asp.net-core-2.1

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

在 Node.js 中调度 CQRS 消息

我想为 Node 应用程序做 CQRS。

我不是一个 Node 人,我来自 .NET,它有一个名为 MediatR 的优秀库,它将命令/查询分派到可用于分离请求和处理程序的中介。所以它允许非常简单和优雅的 CQRS。

在 Node 世界中,我发现了许多库/博客,但它们也总是包含事件溯源。我对 ES 不感兴趣。

我可以很好地为命令和查询建模,但是接下来呢?他们需要以解耦的方式被派往某个地方以避免混乱。

根据我目前对 Node 平台的了解,一个可能的解决方案是使用观察者模式(通过 RxJs 库),这样控制器就可以将消息(即 CQRS 请求)分发给观察者,然后观察者发布相应的事件给订阅者(即请求处理程序)。这在类似 DDD 的设计中分离了控制器和服务。虽然我不确定如何将结果传回控制器。

这是其他人的做法吗?在 Node 中有更好的方法吗?

mediator cqrs node.js rxjs mediatr

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

MudBlazor的paper和element的区别

Mudblazor 对于类似 div 的标签有两个概念:MudElementMudPaper。(它们与其他封闭元素不同,例如用于布局的aMudContainerMudGrid/ 。)MudItem

许多示例几乎只使用其中之一,因此这似乎是个人选择。他们看起来和我很相似。

它们只是 a 的 blazor 表示吗<div>?我什么时候会使用其中之一?

blazor mudblazor

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

如何一起使用 express-winston 和 winston-mongodb?

我正在使用express-winstonwinston-mongodb记录对 mongodb 的快速请求。

快递温斯顿配置:

expressWinston.logger({
  meta: true,
  //...other unrelated config
})
Run Code Online (Sandbox Code Playgroud)

温斯顿-mongodb 配置:

new MongoDB({
  //...other unrelated config
})
Run Code Online (Sandbox Code Playgroud)

登录到 mongodb 有效,但meta字段为空。记录到文件/控制台工作完美。

mongo 插件无法识别 express 插件的日志格式。

我怎样才能让他们玩得开心?

node.js winston

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

渲染一个没有注释的 ansible 模板化 json 文件

我有一个模板化的 json 文件foo.json.j2,其中包含大量文档(“带有注释的 json”)。在服务器上该文件不得包含注释。

有没有一种方法(或模块)可以用来渲染模板而无需注释?

显然,我可以通过一个简单的脚本或 minifer 手动完成此操作,但它需要是幂等的,所以我认为它需要是一个以 ansible 为中心的解决方案。

更新:
示例:

// comment
{
  "foo": "bar",   // comment
  "baz": 10
}
Run Code Online (Sandbox Code Playgroud)

ansible ansible-template

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

为什么默认比较器认为 null 小于某个值

文档Compare(T? x, T? y)说:

\n
\n

返回:
\n一个有符号整数,表示 x 和 y 的相对值
\n小于零 \xe2\x80\x93 x 小于 y。
\n零 \xe2\x80\x93 x 等于 y。
\n大于零 \xe2\x80\x93 x 大于 y。

\n
\n

考虑这个例子:

\n
using System;\nusing System.Collections.Generic;\n                    \npublic class Program\n{\n    public static void Main()\n    {\n        Console.WriteLine(Comparer<int?>.Default.Compare(null, 1)); // -1   ?huh?\n        Console.WriteLine(Comparer<int?>.Default.Compare(-1, 1));   // -1\n        Console.WriteLine(Comparer<int?>.Default.Compare(1, 1));    //  0\n        Console.WriteLine(Comparer<int?>.Default.Compare(2, 1));    //  1\n        \n        Console.WriteLine((int?)null < 1);                          // False\n        Console.WriteLine((int?)null == 1);                         // False\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

null“小于”某个值也是如此。-2如果它返回一个不同的幻数(例如),或者抛出异常,或者其他什么,我不会感到惊讶。

\n

正如预期的那样,并且 …

c# types nullable

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