我是.NET开发人员(ASP.NET Core等),所以我习惯于使用服务器和客户端代码来处理单个项目。我想对Node / Express(使用Typscript)和Angular做同样的事情。
我已经使用Angular的CLI查看了Angular的教程,并使用了它的生成器查看了Node / Express的教程。因此,我了解如何使它们独立工作,但我不确定如何同时使用它们来构建单个项目。
根据经验,我期望这样的事情:
.gitnode_modulesclient
srcserver
srcpackage.json但是,在MEAN堆栈中有许多活动部件,这令人困惑。我不确定在哪里放置各种打字稿文件,配置文件等。以及如何为给定的每个node_modules级别运行开发服务器。
有一些对此存在疑问的问题,或者对此有批评,或者已经过时了(Node世界变化如此之快!)。但是,我想知道的是不同的:
如何在同一项目中设置Node / Express(使用Typescript)和Angular:
ng serve和node app服务器仍然可以使用我是 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 有哪些可用选项?
我知道节点/快递。dependencies我知道和之间的区别devDependencies。
我正在学习角度。我已经看完了官方教程。
我认为有角度的应用程序在开发时被编译成一组静态文件。这些文件被上传到某个服务器。一旦客户端下载它们,所有操作都会在客户端中发生,除非它到达我的节点/express 服务器获取数据。
所以我不明白为什么脚手架的角度项目有package.json和。我假设所有内容都在 中,因为运行时没有,只有引导文件,然后是所有已编译的 javascript。dependenciesdevDependenciesdevDependenciespackage.jsonhtml
我显然误解了部署阶段。有不对的地方请指正。
我的 ASP.NET Core 2.1 Web 应用程序在我的开发设置上完美运行。现在我想在生产中测试它。
\n\n生产服务器是Ubuntu 18。我按照说明进行操作。我还不想设置 nginx,只是做一些快速测试,说明如下:
\n\n\n\n\n“带有或不带有反向代理服务器的配置\xe2\x80\x94\xe2\x80\x94 都是 ASP.NET Core 2.0 或更高版本应用程序的有效且受支持的托管配置”。
\n
所以我构建并发布了我的项目:dotnet publish --configuration Release. \n然后在服务器上:
/var/www/myapp)sudo uwf allow 5000/tcp 80/tcpdotnet MyApp.dll(也尝试过sudo dotnet MyApp.dll)它运行时没有错误/警告,并表示它正在监听http://localhost:5000.
在我的本地计算机上,我尝试了http://serveripaddress(和http://serveripaddress:5000)但什么也没得到(“无法连接”)。我可以通过 ssh、sftp 等访问该服务器 - 只有 http 不起作用。
我究竟做错了什么?
\nasp.net ubuntu kestrel-http-server asp.net-core asp.net-core-2.1
我想为 Node 应用程序做 CQRS。
我不是一个 Node 人,我来自 .NET,它有一个名为 MediatR 的优秀库,它将命令/查询分派到可用于分离请求和处理程序的中介。所以它允许非常简单和优雅的 CQRS。
在 Node 世界中,我发现了许多库/博客,但它们也总是包含事件溯源。我对 ES 不感兴趣。
我可以很好地为命令和查询建模,但是接下来呢?他们需要以解耦的方式被派往某个地方以避免混乱。
根据我目前对 Node 平台的了解,一个可能的解决方案是使用观察者模式(通过 RxJs 库),这样控制器就可以将消息(即 CQRS 请求)分发给观察者,然后观察者发布相应的事件给订阅者(即请求处理程序)。这在类似 DDD 的设计中分离了控制器和服务。虽然我不确定如何将结果传回控制器。
这是其他人的做法吗?在 Node 中有更好的方法吗?
Mudblazor 对于类似 div 的标签有两个概念:MudElement和MudPaper。(它们与其他封闭元素不同,例如用于布局的aMudContainer或MudGrid/ 。)MudItem
许多示例几乎只使用其中之一,因此这似乎是个人选择。他们看起来和我很相似。
它们只是 a 的 blazor 表示吗<div>?我什么时候会使用其中之一?
我正在使用express-winston并winston-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 插件的日志格式。
我怎样才能让他们玩得开心?
我有一个模板化的 json 文件foo.json.j2,其中包含大量文档(“带有注释的 json”)。在服务器上该文件不得包含注释。
有没有一种方法(或模块)可以用来渲染模板而无需注释?
显然,我可以通过一个简单的脚本或 minifer 手动完成此操作,但它需要是幂等的,所以我认为它需要是一个以 ansible 为中心的解决方案。
更新:
示例:
// comment
{
"foo": "bar", // comment
"baz": 10
}
Run Code Online (Sandbox Code Playgroud) 文档Compare(T? x, T? y)说:
\n\n返回:
\n
\n一个有符号整数,表示 x 和 y 的相对值
\n小于零 \xe2\x80\x93 x 小于 y。
\n零 \xe2\x80\x93 x 等于 y。
\n大于零 \xe2\x80\x93 x 大于 y。
考虑这个例子:
\nusing 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}\nRun Code Online (Sandbox Code Playgroud)\nnull“小于”某个值也是如此。-2如果它返回一个不同的幻数(例如),或者抛出异常,或者其他什么,我不会感到惊讶。
正如预期的那样,并且 …