<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nodejs on 冯威的博客</title><link>https://fwhyy.com/tags/nodejs/</link><description>Recent content in Nodejs on 冯威的博客</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 11 Mar 2024 08:45:14 +0800</lastBuildDate><atom:link href="https://fwhyy.com/tags/nodejs/atom.xml" rel="self" type="application/rss+xml"/><item><title>在.NET中动态执行Nodejs代码的另一种方法</title><link>https://fwhyy.com/2024/03/in-another-method-for-dynamically-executing-nodejs-code-in-dotnet/</link><pubDate>Mon, 11 Mar 2024 08:45:14 +0800</pubDate><guid>https://fwhyy.com/2024/03/in-another-method-for-dynamically-executing-nodejs-code-in-dotnet/</guid><description>&lt;p&gt;在低代码平台中，通常有业务逻辑编排的能力，在业务逻辑编排中有很多不同类型的节点，例如：逻辑判断、接口调用、数据更新等，但为了方便开发人员使用，如果添加代码块的节点，将会极大增加开发效率。&lt;/p&gt;</description></item><item><title>dotNet 5 中执行 Node.js</title><link>https://fwhyy.com/2021/08/dotnet5-exec-node-js/</link><pubDate>Mon, 09 Aug 2021 08:05:00 +0800</pubDate><guid>https://fwhyy.com/2021/08/dotnet5-exec-node-js/</guid><description>&lt;p&gt;在&lt;a href="http://mp.weixin.qq.com/s?__biz=MzU0NjgzNzQyMw==&amp;amp;mid=2247484621&amp;amp;idx=1&amp;amp;sn=e23179a553c2cf80f5b2d0d351c75065&amp;amp;chksm=fb56c20dcc214b1b17894f1afb6070024cd1321811182d202437cea4baaecf34e69f27ad0978&amp;amp;scene=21#wechat_redirect"&gt;低代码产品&lt;/a&gt;中为了扩展功能，我们在业务编排中会扩展代码块的功能，允许用户直接在界面中进行代码（Node.js、 Python）的编写，来实现取数或者赋值的一些功能。本文简单介绍下在 dotNET 5 中怎么样进行 Node.js 的调用以及怎样部署到 CentOS 和 Docker 容器中。&lt;/p&gt;
&lt;h2 id="环境"&gt;环境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;dotNET ：5&lt;/li&gt;
&lt;li&gt;Node.js：14.17.4&lt;/li&gt;
&lt;li&gt;CentOS：7.6&lt;/li&gt;
&lt;li&gt;Docker：19.03.13&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dotnet-5-中的代码实现"&gt;dotNET 5 中的代码实现&lt;/h2&gt;
&lt;p&gt;1、在 VS 中创建 WebAPI 示例项目 nodejs-demo 项目，目标框架选择 .NET 5.0。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/20220202081223.webp" alt="iShot2022-02-02 08.12.23" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;2、在项目中引入 NuGet 包：Microsoft.AspNetCore.NodeServices ,这里我使用的是 5.0 的预览版本。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202202020813752.webp" alt="iShot2022-02-02 08.13.07" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;3、修改 Startup 类，在 ConfigureServices 方法中添加下面代码：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;services.AddNodeServices();
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;4、在项目的根目录中创建一个名为 hello.js 的脚本文件，文件的属性中的「复制到输出目录」设置为「始终复制」，文件的内容如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;module.exports = function (callback, name) {
 var msg = &amp;#39;Hello,&amp;#39; + name;
 callback(null, msg);
};
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;5、编写一个 API 接口方法：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[HttpGet]
public async Task&amp;lt;IActionResult&amp;gt; Get([FromServices] INodeServices nodeServices)
{
 var result = await nodeServices.InvokeAsync&amp;lt;string&amp;gt;(&amp;#34;hello.js&amp;#34;, &amp;#34;oec2003&amp;#34;);
 return Ok(result);
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;6、如果正常运行，结果如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202202020813556.webp" alt="iShot2022-02-02 08.13.29" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="部署到-centos-中"&gt;部署到 CentOS 中&lt;/h2&gt;
&lt;p&gt;1、在 Node.js 的中文官网 (&lt;a href="http://nodejs.cn/download/current/"&gt;http://nodejs.cn/download/current/&lt;/a&gt;) 下载 Linux 二进制文件 (x64) 的安装包；&lt;/p&gt;
&lt;p&gt;2、将下载的安装包 node-v14.17.4-linux-x64.tar.xz 复制到 CentOS 系统的 root 目录中；&lt;/p&gt;
&lt;p&gt;3、执行命令 &lt;code&gt;tar -xvf node-v14.17.4-linux-x64.tar.xz&lt;/code&gt; 解压安装文件；&lt;/p&gt;
&lt;p&gt;4、执行命令 &lt;code&gt;mv node-v14.17.4-linux-x64 nodejs&lt;/code&gt; 将解压后的文件夹命名为 nodejs；&lt;/p&gt;</description></item><item><title>使用nw.js制作桌面应用程序</title><link>https://fwhyy.com/2015/10/use-nwjs-to-create-desktop-applications/</link><pubDate>Thu, 22 Oct 2015 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2015/10/use-nwjs-to-create-desktop-applications/</guid><description>&lt;p&gt;本文主要介绍在windows和mac下如果使用nw.js来制作桌面应用程序，以及如何制作成安装包，本文不涉及nw.js的开发，只是用nw.js做壳包一个web应用而已。&lt;/p&gt;</description></item></channel></rss>