Articles of edge.js

通过Edge.js从多项目Visual Studio解决scheme中的node.js项目调用Web API

我有一个现有的Web API项目,我想在新的React项目中用作后端。 我猜想直接调用服务器上的Web API(使用Edge.js)而不通过HTTP请求会更快。 应该怎么做? 到目前为止,我向已经包含Web API项目的Visual Studio解决scheme添加了一个Node项目,并将这两个项目都设置为启动项目。 但是,如何从Node项目调用Web API控制器?

从ASP.NET MVC项目运行Edge.js

我有一个有趣的时间试图从ASP.NET MVC项目运行Edge.js。 在Edge文档中,基本的控制台应用程序是这样的: public static async Task Start() { var func = Edge.Func(@" return function (data, callback) { callback(null, 'Node.js welcomes ' + data); }"); Console.WriteLine(await func(".NET")); } static void Main(string[] args) { Start().Wait(); } 这在我的机器上没有问题。 下一步是创build一个ASP.NET MVC项目,并尝试从窗体驱动的控制器操作中运行相同的脚本。 ASP.NET MVC项目默认运行在IIS Express上。 这是控制器: public class HomeController : Controller { public ActionResult Index() { return View(); } […]

节点/边缘:替代node.exe.config

Edge.js文档指出,为了让我的应用程序具有.net设置,我需要把它们放在node.exe.config 。 如何:app.config 在Node.js应用程序中运行C#代码时,应用程序configuration文件是node.exe.config,应该位于node.exe文件的旁边。 这会造成冲突,因为我有几个边缘应用程序运行在这个盒子上。 有什么select?

node.js为业务逻辑(edge.js)编写模块

我相当新的node.js,我不觉得在node.js写业务逻辑100%舒适。 我必须支持MSSQL作为Database-Backend,所以我来到了Edge.js。 后来我想也许这可能是一个很好的想法,我的DataLayer和BusinessLogic作为Edge.js模块。 有没有人有这种方法的经验? 有什么限制吗?

Visual Studio iOS部署失败,因为“边缘模块尚未预编译”

我正在尝试从Windows计算机部署HTML / CSS / JS Apache Cordova应用程序到Mac。 我相信他们正在通过remotebuild代理正常通信,但是当我尝试构build一个空白的项目在Mac上部署时,这个错误是在构build的最初阶段引发的: MDAVSCLI : error : The edge module has not been pre-compiled for node.js version v4.1.1. You must build a custom version of edge.node. Please refer to https://github.com/tjanczuk/edge for building instructions. 我已经按照链接,并已经find了解决办法,以解决这个错误,但这个链接似乎并不适用于我所做的。 我没有在我的代码中使用任何node.js函数,所以我很困惑,为什么这个错误发生。 我只是试图build立一个几乎空白的HTML页面,我仍然得到错误,无论我做这个页面有多简单。 我怎样才能解决这个问题? 什么是摆脱这个错误的最好方法,或者是因为错误提示预编译边缘与node.js版本4.1.1一起工作?

使用edge.js有可能使.Net C#模块调用进程的node.js部分,即做反向调用吗?

你可以在这里看到从Node.js – > C#的interop模型。 我想知道的是,C#代码可以在返回之前调用C#中的进程的Node.js部分中的方法吗? 想象一下,如果你有一个电话,像 var webApi = edge.func('/MyDotNetApi.csx'); webApi(function (error, result) { log.('api started'); }); MyDotNetApi.csx返回,但留下一个套接字侦听器线程运行来处理HTTP请求。 现在,如果进程的Node.js部分持有(不断变化).Net代码需要访问的信息以包含在其HTTP响应中,它是否可以以某种方式请求Node.js?

从C#.Net调用Node.JS

是否有可能在C#ASP.Net服务器上调用Node.js方法/模块? 我发现Edge.JS库,但据我了解,它允许调用Node.JS上的C#代码。 我需要直接相反的解决scheme。

GetObject与edge.js

我目前正在通过运行edge.js的基于node.js的REST-APIreplaceIE中的ActiveX实现 到目前为止,页面实现的基本示例工作得很好。 我有我的index.js设置为 var edge = require('edge'); var edgeVb = require('edge-vb'); var path = require('path'); var helloVb = edge.func('vb', path.join(__dirname, 'simpleVbFunction.vb')); helloVb('Testing with String', (err, res) => { if(err) throw err; console.log(res); }); 和simpleVbFunction.vb一样 Async Function(Input As Object) As Task(Of Object) Return Await Task.Run(Function() Return "NodeJS Welcomes: " & Input.ToString() End Function) End Function 到现在为止还挺好。 […]

当从C#调用Edge.js时,如何钩住stdout和stderr?

背景 我正在通过Process.Start()运行Node的C#程序。 我从这个subprocess捕获stdout和stderr,并根据我自己的原因redirect它。 我正在考虑用一个调用Edge.js代替Node.exe的调用。 为了能够做到这一点,我必须能够可靠地捕获在Edge中运行的Javascript的标准输出和标准错误,并将消息传回到我的C#应用​​程序中。 方法1 我会描述这种方法的完整性,以防有人推荐它:) 如果Edge进程终止,则只需简单地声明一个msgs数组,并用新的函数覆盖process.stdout.write和process.stderr.write来处理这个问题是相当容易的,这些函数会在该数组上累积消息,最后只需返回消息数组。 例: var msgs = []; process.stdout.write = function (string) { msgs.push({ stream: 'o', message : string }); }; process.stderr.write = function (string) { msgs.push({ stream: 'e', message: string }); }; // Return to caller. var result = { messages: msgs; …other stuff… }; callback(null, result); 显然这只有在Edge代码终止的情况下才有效,在最坏的情况下,消息可能会变大。 但是,它很可能会performance良好,因为只有一个编组调用才能获取所有消息。 […]

通过.NET SDK在node.js上进行指纹识别

我试图让一个node.js应用程序与一个名为U.are.U的.NET SDK指纹识别器进行交互。 SDK提供.dll(win32和x64),Java和.NET库。 我决定使用.NET的简单使用,使所有的接口可以使用和所有。 所以,我目前面临的问题是如何调用这些.NET函数,仍然保持node.js的asynchronous性质。 应用程序stream程(在.NET示例中)非常简单,库中有3个调用,指纹完成。 private IEnumerable<Fmd> CaptureAndExtractFmd() { while (!reset) { DataResult<Fmd> resultConversion; try { if (count >= 8) { SendMessage("Enrollment was unsuccessful. Please try again."); count = 0; break; } Fid fid = null; if (!_sender.CaptureFinger(ref fid)) break; if (fid == null) continue; count++; resultConversion = FeatureExtraction.CreateFmdFromFid(fid, Constants.Formats.Fmd.ANSI); SendMessage("A finger was captured. […]