是否可以在C#ASP.Net服务器上调用Node.js方法/模块? 我发现了Edge.JS库,但据我所知,它允许在Node.JS上调用C#代码。 我需要直接反向解决方案。
答案 0 :(得分:10)
Edge.js has not been updated since mid 2017和Microsoft.AspNetCore.NodeServices has been obsoleted。
我的组织维护着一个Jering.Javascript.NodeJS库,该库可以完成Microsoft.AspNetCore.NodeServices所做的所有工作,以及更多:
Jering.Javascript.NodeJS使您可以从C#调用NodeJS中的javascript。借助此功能,您可以使用C#项目中的javascript库和脚本。
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);
跨平台支持
长期运行的应用程序支持
string
形式,Stream
形式或从磁盘上的文件中调用JavaScript。答案 1 :(得分:3)
Microsoft.AspNetCore.NodeServices
这为.NET代码在Node.js环境中的服务器上运行JavaScript提供了一种快速而强大的方法。您可以使用它来在运行时在ASP.NET Core应用程序中使用NPM包中的任意功能。
大多数应用程序开发人员不需要直接使用它,但是如果要实现自己的功能,包括在运行时从.NET调用Node.js代码,则可以这样做。
答案 2 :(得分:0)
使用'express'在你的节点app中公开一个http方法,并使用'RestSharp'/'HttpClient'调用它