问题标签 [edge.js]

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 投票
2 回答
172 浏览

javascript - 如何按顺序正确调用异步函数列表?

我正在尝试在 Node.js 中编写类似“robocopy /mir”的函数,但我似乎无法理解如何按顺序正确执行多个异步函数。

一些背景:

  • 该脚本在 Windows 上运行,因此,我需要找到一些方法来复制文件,同时保留修改时间并接收进度通知。
  • 为了解决这个问题,我继续在 .NET 中编写了我的复制函数(使用 Edge.js 调用它)——这个复制函数只是回调一个节点函数来报告文件复制进度。这件作品完美无缺。

要按顺序复制文件,我的第一个想法是执行以下操作:

不幸的是,这(如预期的那样)在调用 .NET 函数后立即开始复制每个文件,因此,我会立即收到所有文件的进度通知,并提供如下输出:

似乎我需要一种方法来排队要完成的工作,然后再一次将其全部启动,每个项目在下一个继续之前完成。当所有项目都完成后,我需要得到通知。解决方案似乎很简单,但由于我尝试的每个角度都伴随着另一个问题,所以我仍然无法理解。任何帮助将不胜感激,谢谢!

编辑: 正如我在评论中所述,Bergi 提供的答案是使用一个函数,该函数实际上返回了一个承诺,而我的 Edge.js 函数没有。我能够首先通过使用数组而不是对象来解决我的问题filesToCopy,然后执行以下操作:

这可能不是最好的方法,但它适用于我的用途。

0 投票
1 回答
461 浏览

node.js - Edge.Js:如何在 nodejs 中执行多个回调

我有一个使用 EdgeJs 执行 JavaScript 的 .Net 应用程序。js 脚本执行一些逻辑并获取一些数据,然后它应该将数据返回给 .Net 应用程序。可能有很多数据,所以我想将它分块传回.Net应用程序。

我的 .Net 应用程序:

基本上我想做这样的事情(简单的例子):

如您所见,我正在执行回调 3 次,但我找不到让 Edge.Js 处理所有 3 个响应的方法。

有任何想法吗 ?

谢谢。

0 投票
1 回答
3345 浏览

asp.net-mvc - 将 Visual Studio MVC 项目的页面标记为“async = true”

我正在使用 Edge.js,以便可以从 C# 调用 Node.js。根据链接中的文档,我会这样做类似于以下内容:

但是,我收到以下运行时错误:

我的问题有两个:

1.如何制作页面,async=true。我知道如何为 Web 表单项目而不是 MVC 项目执行此操作。

2.有没有更好的方法来做我想做的事?当您看到我返回 void 时,可能会出现一个危险信号,但这与正在使用 Edge.js 的事实有关。即便如此,我尝试在调用方法中返回 aTask然后,但任务永远不会完成。task.Wait()

0 投票
1 回答
257 浏览

c# - 如何在 OSX 上的 edge.js 中运行的 c# 堆栈跟踪中获取文件名和行号

这特别是关于在 edge.js 下运行 c# 时获取堆栈跟踪中的行号。

鉴于此 C# 源文件 (test.cs)

我正在使用以下命令构建一个 .dll(和 .dll.mdb):

并使用此 edge.js 脚本运行:

输出中的堆栈跟踪没有文件名或行号:

有没有办法在堆栈跟踪中获取文件名和行号而不是 <filename unknown>:0 ?

在命令行中,mono 必须使用 --debug 参数运行才能获取行号。如果这里是这种情况,那么这个问题可能归结为“我如何将参数从 edge.js 传递给 CLR?”

版本:node.js:v0.10.39、mcs/mono:4.0.4.0、edge.js:4.0.0

[编辑] 我发现你可以通过设置环境变量 MONO_ENV_OPTIONS 从边缘获取命令行参数。不幸的是,这不适用于 --debug。

0 投票
3 回答
147 浏览

sql-server - 无法弄清楚使用 edge-sql 的参数调用存储过程的语法

我不确定如何将字符串请求格式化为 edge-sql 以执行需要参数的存储过程。如果我将存储过程更改为不使用参数而只是发送exec sp_III_UpdateOperMgr它会正确执行。

下面是我在 edge-sql 中使用的返回错误的语法

“找不到存储过程 'sp_III_UpdateOperMgr @quoteNumber,@poNumber'。”

下面是正确执行的 MS SQL Server Management Studio 中使用的语法 exec sp_III_UpdateOperMgr @quoteNumber='121715JM-1',@innovationJobNumber='999999'

0 投票
1 回答
544 浏览

node.js - 在 iisnode 中,让 edge.js 从 web.config 中拉取连接字符串

我正在运行iisnode并使用 edge.js 访问第 3 方 DLL 中的代码。此代码期望有一个web.config文件可以从中提取连接字符串。

文件结构:

cs\myCode.cs

api.js

我尝试将连接字符串放在web.configiisnode 使用的文件中,但显然 edge.js 不在那里。当我将连接字符串放入node.exe.config并将该文件放入时它可以工作c:\program files\nodejs,但这是一个不可接受的解决方案。

同样,我使用 edge.js 的重点是我可以使用第三方 DLL,所以我不能简单地告诉 DLL 我的连接字符串是什么,除非我可以强行将它插入ConfigurationManager.ConnectionStrings.

不能使用 edge-sql,因为我没有编写任何 SQL——dll 已经处理了 SQL。我无法使用环境变量设置连接字符串,EDGE_SQL_CONNECTION_STRING因为 dll 正在web.config.

想法?

0 投票
0 回答
83 浏览

c# - 从 C# 监控 Edge.js 任务

我的目标是能够取消使用 Edge.js 从 C# 调用的长时间运行的 Node.js 任务。

正常使用任务时,你可以指定一个取消令牌,给你的任务一些时间来执行,如果超过你的时间限制就取消它。

我不知道如何定义/调用 Edge.Func 节点函数/任务并传入取消令牌以便能够在进程过长时终止进程。也许我从错误的角度考虑这个问题......

任何见解都会非常有帮助,谢谢!

0 投票
1 回答
203 浏览

node.js - edge.js 使用节点模块

我正在尝试使用 edge.js 和 Visual Studio 进行以下操作:

do_some_math.js:

使用回调时我无法得到结果,而使用 console.log 时 mathjs 工作。似乎在 require('mathjs') 之后回调不起作用。我也尝试过其他模块。这里有什么问题?

0 投票
2 回答
1518 浏览

c# - 在edge.js的帮助下,在node.js模块中使用C#调用方法

我正在尝试使用edge.js在 C# 中使用 node.js 模块。

我可以访问模块的属性,但不能访问方法。

需要.js

模块.js

有没有办法可以从 C# 调用 node.js 中的函数并访问“答案 2”?

这里的错误:

0 投票
0 回答
180 浏览

asp.net - 通过 Edge.js 从多项目 Visual Studio 解决方案中的 node.js 项目调用 Web API

我有一个现有的 Web API 项目,我想在新的 React 项目中用作后端。我想直接调用服务器上的Web API(使用Edge.js)而不通过HTTP请求它会快得多。

那应该怎么做?到目前为止,我在已经包含 Web API 项目的 Visual Studio 解决方案中添加了一个 Node 项目,并将两个项目都设置为启动项目。

但是我需要如何从 Node 项目中调用 Web API 控制器呢?