标签:目录 微软 api des dom set 场景 fun work
目前.net core正处于飞速的成长期,虽然前途光明不容置疑,但是就生态而言还是比不上其他一些语种的大环境,那如果能够在.net core下调用其他语种的库加以利用那就能更好的发挥我们手头的.net core 而不至于因为库短缺而尴尬
NodeJs出生名门,依靠其异步IO广泛用于I/O密集的场景,而且世界上的javascript开发者也是多如牛毛!自然Nodejs的盛起也给他们的代码生活带来了前所未有的体验,同样JS的库也是五花八门一度占据了github的排行榜。
如果.net core能利用 nodejs的庞大生态库是不是很nice?
其实微软爸爸提供了Microsoft.AspNetCore.NodeServices这个库,专门用来调用nodejs服务
要使用NodeJs服务,首先需要Microsoft.AspNetCore.NodeServices在项目文件中包含包的引用。您可以使用dotnet add package Microsoft.AspNetCore.NodeServices命令执行此操作。
然后,您需要将Node Services中间件利用ConfigureServices()添加到请求管道。
现在,您可以利用INodeServices在应用程序中获取实例。并利用它调用在Node环境中运行的JavaScript的API。您可以使用FromServicesattribute在您的action方法中获取`INodeServices‘的实例
这里我贴一个实例供参考
利用dotnet command建立站点
dotnet new mvc
dotnet add package Microsoft.AspNetCore.NodeServices
在站点根目录下利用npm建立环境
npm init -y npm install node-wifi --save-dev
var wifi = require("node-wifi"); module.exports = function(callback) { wifi.init({ iface: null // network interface, choose a random wifi interface if set to null }); // Scan networks wifi.scan( ).then(function (networks) { callback(null,networks)}); };
?
public void ConfigureServices(IServiceCollection services) { services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddNodeServices(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); }
public void ConfigureServices(IServiceCollection services) { services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddNodeServices(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); }
返回情况
?
标签:目录 微软 api des dom set 场景 fun work
原文地址:https://www.cnblogs.com/linkanyway/p/Net-Core-invoke-node-js.html