gpt4 book ai didi

c# - 从 C# .NET 调用 Node.js

转载 作者:搜寻专家 更新时间:2023-10-31 22:20:23 27 4
gpt4 key购买 nike

是否可以从 C# ASP.NET 服务器调用 Node.js 函数?我找到了 Edge.js 库,但据我了解,它允许 Node.js 调用 C#。我需要直接反向解决方案。

最佳答案

Edge.js has not been updated since mid 2017Microsoft.AspNetCore.NodeServices has been obsoleted .

我的组织维护着一个图书馆,Jering.Javascript.NodeJS ,它完成了 Microsoft.AspNetCore.NodeServices 所做的一切以及更多:

Jering.Javascript.NodeJS enables you to invoke javascript in NodeJS, from C#. With this ability, you can use javascript libraries and scripts from your C# projects.

示例用法

string javascriptModule = @"
module.exports = (callback, x, y) => { // Module must export a function that takes a callback as its first parameter
var result = x + y; // Your javascript logic
callback(null /* If an error occurred, provide an error object or message */, result); // Call the callback when you're done.
}";

// Invoke javascript in Node.js
int result = await StaticNodeJSService.InvokeFromStringAsync<int>(javascriptModule, args: new object[] { 3, 5 });

// result == 8
Assert.Equal(8, result);

亮点

  • 跨平台支持

    • 以 .NET Standard 2.0 和 .NET Framework 4.6.1 为目标。
    • 在 Windows、macOS 和 Linux 上测试。
  • Performance特点

    • 不会为每次调用启动新的 Node.js 进程。相反,通过进程间通信将调用发送到长期存在的进程。
    • 可选地,运行调用 concurrently在 Node.js 进程集群中。处理集群的负载平衡。
    • 尽可能缓存已编译的 javascript。
  • 长时间运行的应用程序支持

    • 如果 Node.js 进程意外终止,则重新启动它们。
    • 可选地,在文件更改时重新启动 Node.js 进程。
    • 在父 .Net 进程终止时终止 Node.js 进程。
  • Flexible API

    • 同时公开 static API和一个基于依赖注入(inject)的 API。
    • 支持以 string 形式、Stream 形式或从磁盘文件调用 javascript。

关于c# - 从 C# .NET 调用 Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42108188/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com