问题标签 [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.
node.js - Edge.js 将缓冲区传递给回调
我正在使用 Edge.js 在我的 F# 代码中执行 node.js 模块。我的节点模块返回 Stream 并且我发现,我应该用节点缓冲区编组它。
我从 .NET 调用的函数如下所示:
当我从 node.js 调用这个函数时它工作得很好,但是使用 Edge.js 它挂起并且永远不会等待任务。Edge.js 对流有什么特别的作用吗?我错过了什么吗?
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 调用?
javascript - 运行 JS 函数时,如何在 c# 中的 Edgejs 中获取错误文本?
我想在控制台应用程序的 c# 平台中运行一些 JavaScript 文件,例如:
但是当我的 js 函数出现错误时,它不会给我任何错误文本或提示来检测我的错误。
那么在运行 JS 函数时如何在 c# 中的 Edgejs 中获取错误文本?
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 的使用可能存在问题。
如果有人知道发生了什么,以及为什么登录到控制台可以解决问题。我会很感激任何帮助!
标记
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
但我不相信我没有错误配置某些东西或者我遗漏了一些明显的东西。
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
安装了,我应该降级吗?或者有没有办法在边缘设置版本?
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
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
文件,但得到了相同的结果。
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 生成的确切发布文件夹,这也不是决定性的。
此练习中缺少什么或可能做错了什么?!
附带说明:我使用的是最新版本的电子边缘。
c# - 为什么这个 lambda 函数需要括号?
根据我收集到的上述代码正在执行的操作,它明确地将 lambda 函数转换为委托,然后返回该委托(在这种情况下,它返回到一个 edgejs 函数)。
删除括号后,从构建过程中收到 8 个错误。
语法错误,“,”应为
; 预期的
} 预期的
当前上下文中不存在名称 async
当前上下文中不存在名称 dynamic
当前上下文中不存在名称数据
当前上下文中不存在名称数据
当前上下文中不存在名称数据