问题标签 [edgejs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
166 浏览

node.js - Edge.js 将缓冲区传递给回调

我正在使用 Edge.js 在我的 F# 代码中执行 node.js 模块。我的节点模块返回 Stream 并且我发现,我应该用节点缓冲区编组它。

我从 .NET 调用的函数如下所示:

当我从 node.js 调用这个函数时它工作得很好,但是使用 Edge.js 它挂起并且永远不会等待任务。Edge.js 对流有什么特别的作用吗?我错过了什么吗?

0 投票
0 回答
1040 浏览

c# - 如何在 Linux 上从 node.js 进行 WMI 调用?

我正在寻找一种方法,使 nodejs 从在 Linux 上运行的 Linux 对远程 Microsoft Windows 服务器进行“本机”WMI 调用。

我在 npm 上找到的所有模块都只是二进制可执行文件(主要是 wmic)的包装器,这不是我正在寻找的解决方案,因为我希望这个过程更高效,而不需要创建一个新的系统进程.

尝试使用来自 tjanczuk ( https://github.com/tjanczuk/edge ) 的名为 edge 的出色模块,但是为了在 C# 中进行 WMI 调用,需要 System.Management.dll 中的 ManagementObjectSearcher()。概念证明在 MS Windows 上运行时效果很好,但在 Linux 上执行时缺少 System.Management.dll。

Linux 有 Mono 和 Microsoft CoreCLR 新发布的 Linux。首先有 System.Management.dll 和事件 ManagementObjectSearcher() 但不能作为源代码注释解释“TODO”:(另一方面,我无法在 CoreCLR 中找到 ManagementObjectSearcher()。

是否有其他方法可以在不使用执行二进制文件的包装器的情况下从 Linux 向远程 MS Windows Server 进行本机 nodejs WMI 调用?

0 投票
1 回答
82 浏览

javascript - 运行 JS 函数时,如何在 c# 中的 Edgejs 中获取错误文本?

我想在控制台应用程序的 c# 平台中运行一些 JavaScript 文件,例如:

但是当我的 js 函数出现错误时,它不会给我任何错误文本或提示来检测我的错误。

那么在运行 JS 函数时如何在 c# 中的 Edgejs 中获取错误文本?

0 投票
1 回答
933 浏览

c# - 将 Edge 与 Node 一起使用时,Promise 未完成

我正在研究如何最好地使用 Edgejs for Node 来使用我的 C# dll。

Node 中的一个代理函数如下所示(Typescript 中的类方法):

当我在 c# 中的复杂任务是同步的时,一切都按预期工作,但是当我将 c# 函数的核心移动到一个任务中时:

当我使用上述模式时,resolve(result) 行被命中,结果在监视窗口中是正确的,但是任何组成的 .then 或 Q.all 结构都不会响应 resolve(result) 已执行。

我发现如果我 console.log("x"); 在代理回调返回之前,我的组合 .then 和 Q.all 结构按预期触发。即这个版本有效:

在这种情况下,我的 c# 例程读取一个 xml 文件,对其进行反序列化并返回它:

这相当简单。我认为我在使用 async/await 时遇到了问题,这会导致 Node.js 出现问题。不过说句公道话,我曾期望诺言是稳健的。我对 Typescript、Node、Edge、Promises、Q 的使用可能存在问题。

如果有人知道发生了什么,以及为什么登录到控制台可以解决问题。我会很感激任何帮助!

标记

0 投票
1 回答
644 浏览

c# - 如何解决 Edge.Func 挂起?

我正在评估 Edge.Js 以在现有项目中使用,但在调用 Edge.Func 时遇到了问题。对于不是控制台应用程序的项目,它在Edge.Funct(调用(例如WebAPI 或测试项目)时挂起(不抛出异常)。

我在这里有一个测试 sln:https ://github.com/cumminsjp/edgete

如果我将相同的代码放入控制台应用程序中 - 它可以工作,并且我会hello world从函数中得到预期的返回。

我看过相关的讨论/问题:
https://github.com/tjanczuk/edge/issues/215
https://github.com/tjanczuk/edge/issues/373
从 C# 控制台应用程序中使用 Edge.js

但我不相信我没有错误配置某些东西或者我遗漏了一些明显的东西。

0 投票
1 回答
99 浏览

node.js - 在 Edge.js 中更改 IronPython 版本?

我正在测试 Edge.JS,因为我需要从 Node.js 运行 Python 函数。问题是 Edge 似乎想要另一个版本的 IronPython:

Could not load file or assembly 'IronPython, Version=2.7.0.40, Culture=neutral, PublicKeyToken=7f709c5b713576e1' or one of its dependencies. The system cannot find the file specified.

我已经2.7.6.3安装了,我应该降级吗?或者有没有办法在边缘设置版本?

0 投票
1 回答
465 浏览

javascript - Edge.js 从 expandoobject 转换为字符串

我正在尝试使用 Tomasz Janczuk 的出色 edgejs 库从第 3 方 dll 调用函数。根据我收到的错误消息,代码可能会或可能不会返回信息。我收到的错误消息(见下文)说代码需要一个字符串,但取而代之的是一个 ExpandoObject。我已经根据 edgejs github 页面上的示例尝试了此代码的几个不同版本,但它们都返回相同的错误。该错误表明这只是将expandoobject转换为字符串的问题,但到目前为止我没有成功。任何有关此问题的帮助将不胜感激。我一直在努力让它工作的时间比我承认的要长。

基于edgejs github上的110_clr_instance.js示例的代码:

控制台错误输出:

但后来我使用 webstorm 单步执行代码,并从 edge.js 中发现了这个错误。ReferenceError: options is not defined

edgejs_clr_instance_error

0 投票
2 回答
17738 浏览

node.js - 错误:找不到指定的模块

我正在尝试使用edge.js执行一些 .NET 代码以在 Electron 应用程序的窗口上打印。我已经尝试过electron-edge并且我还尝试按照 Electron docs 中的说明手动构建针对 Electron 的 edge.js 模块,但是当我尝试在打包的应用程序中使用 edge 时,我不断收到以下错误:

我检查了文件系统,并且该edge_nativeclr.node模块确实存在。我的怀疑是我以某种方式没有正确构建模块,它可能仍然针对错误版本的节点,因此电子无法导入模块。

我尝试了几种不同的方法,包括按照electron-edge 的步骤手动更新build.bat并将--target=1.4.12 --dist-url=https://atom.io/download/atom-shell标志添加到 node-gyp configure build

我还在我的中设置了以下 npm 配置选项.npmrc

并运行build.bat,确保将EDGE_NATIVE环境变量设置为指向生成的edge_nativeclr.node文件,但得到了相同的结果。

0 投票
0 回答
1335 浏览

c# - 无法加载文件或程序集'System.Runtime,版本 = 4.1.0.0,文化 = 中性

这个问题的上下文是 .net core 1.1 和电子边缘:

我使用 .Net Standard 1.6 在 .Net Core 1.1 中创建了一个超级简单的 C# 库。我成功完成了 dotnet restore、dotnet build 和 dotnet release 等....根据文档。事情进展顺利,我将所有 DLL、json 文件等从发布文件夹移动到节点运行的文件夹中名为“dll”的文件夹中。所以,它看起来像这样:C:\electron-quick-start\dll

当我运行 js 文件时,我收到主题行中提到的错误消息。然后我设置以下环境变量:

但我收到此错误消息/异常:

类型错误:edge.initializeClrFunc 不是函数

即使我试图将“dll”文件夹的所有内容并排放置在节点运行的位置,但没有成功。此外,我将 app root 设置为 dotnet release 生成的确切发布文件夹,这也不是决定性的。

此练习中缺少什么或可能做错了什么?!

附带说明:我使用的是最新版本的电子边缘。

0 投票
1 回答
132 浏览

c# - 为什么这个 lambda 函数需要括号?

根据我收集到的上述代码正在执行的操作,它明确地将 lambda 函数转换为委托,然后返回该委托(在这种情况下,它返回到一个 edgejs 函数)。

删除括号后,从构建过程中收到 8 个错误。

语法错误,“,”应为

; 预期的

} 预期的

当前上下文中不存在名称 async

当前上下文中不存在名称 dynamic

当前上下文中不存在名称数据

当前上下文中不存在名称数据

当前上下文中不存在名称数据