<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Node.js on Roam Tech-verse | Roamverse Technical Blog</title>
    <link>/notes/node-js/</link>
    <description>Recent content in Node.js on Roam Tech-verse | Roamverse Technical Blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>Copyright © 2020-2026 Razon Yang. All Rights Reserved.
</copyright><atom:link href="/notes/node-js/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>TypeScript 介绍</title>
      <link>/notes/node-js/typescript/</link>
      <pubDate>Fri, 18 Aug 2023 09:21:24 +0000</pubDate>
      <guid>/notes/node-js/typescript/</guid>
      <description><![CDATA[<p>TypeScript 是 JavaScript 的超集，扩展了 JavaScript 的语法，因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改TypeScript 是一种给 JavaScript 添加特性的语言扩展。增加的功能包括：</p>
<ul>
<li>类型批注和编译时类型检查。</li>
<li>类型推断。</li>
<li>类型擦除。</li>
<li>接口。</li>
<li>枚举。</li>
<li>Mixin。</li>
<li>泛型编程。</li>
<li>名字空间。</li>
<li>元组。</li>
<li>Await。</li>
</ul>
<hr>

<h1 id="安装-typescript" data-numberify>安装 TypeScript<a class="anchor ms-1" href="#安装-typescript"></a></h1>
<p>安装TypeScript：</p>]]></description>
    </item>
    
    <item>
      <title>Node.js Nodemon 模块</title>
      <link>/notes/node-js/nodemon/</link>
      <pubDate>Sat, 12 Aug 2023 13:01:59 +0000</pubDate>
      <guid>/notes/node-js/nodemon/</guid>
      <description><![CDATA[<p>Nodemon是一种监听项目文件变动，让项目文件在修改时可以自动重启项目的工具。使用Nodemon时，当代码被修改，Nodemon会自动帮我们重启项目，极大方便了开发和调试。</p>]]></description>
    </item>
    
    <item>
      <title>NPM 与包</title>
      <link>/notes/node-js/npm-and-package/</link>
      <pubDate>Tue, 08 Aug 2023 08:17:55 +0000</pubDate>
      <guid>/notes/node-js/npm-and-package/</guid>
      <description><![CDATA[<h1 id="包" data-numberify>包<a class="anchor ms-1" href="#包"></a></h1>
<p>在Node.js中，第三方模块又称为<strong>包</strong>。第三方模块与包的概念相同，仅仅在称呼上有差异。包是由第三方个人或团队开发出来的，免费供所有人使用。</p>]]></description>
    </item>
    
    <item>
      <title>Node.js 模块化</title>
      <link>/notes/node-js/modularization/</link>
      <pubDate>Mon, 07 Aug 2023 14:23:19 +0000</pubDate>
      <guid>/notes/node-js/modularization/</guid>
      <description><![CDATA[<h1 id="模块化概念" data-numberify>模块化概念<a class="anchor ms-1" href="#模块化概念"></a></h1>
<p>模块化是指解决一个复杂问题时，自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说，模块是可组合、可分解和可更换的单元。</p>]]></description>
    </item>
    
    <item>
      <title>Node.js HTTP 模块</title>
      <link>/notes/node-js/http-module/</link>
      <pubDate>Mon, 07 Aug 2023 08:05:53 +0000</pubDate>
      <guid>/notes/node-js/http-module/</guid>
      <description><![CDATA[<p><code>http</code>模块是Node.js官方提供的、用于创建Web服务器的模块。通过<code>http</code>模块提供的<code>http.createServer()</code>方法，就能像Web服务器一样对外提供Web资源服务。</p>]]></description>
    </item>
    
    <item>
      <title>Node.js 事件循环</title>
      <link>/notes/node-js/event/</link>
      <pubDate>Sun, 06 Aug 2023 14:46:07 +0000</pubDate>
      <guid>/notes/node-js/event/</guid>
      <description><![CDATA[<p>Node.js 是单进程单线程应用程序，但是因为 V8 引擎提供的异步执行回调接口，通过这些接口可以处理大量的并发，所以性能非常高。</p>
<p>Node.js 几乎每一个 API 都是支持回调函数的。</p>]]></description>
    </item>
    
    <item>
      <title>Node.js 文件系统模块</title>
      <link>/notes/node-js/fs/</link>
      <pubDate>Sun, 06 Aug 2023 07:35:26 +0000</pubDate>
      <guid>/notes/node-js/fs/</guid>
      <description><![CDATA[<p>使用<code>fs</code>模块，首先需要导入：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-javascript" data-lang="javascript"><span class="line"><span class="ln">1</span><span class="cl"><span class="kr">const</span> <span class="nx">fs</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;fs&#39;</span><span class="p">)</span>
</span></span></code></pre></div><hr>

<h1 id="读取文件" data-numberify>读取文件<a class="anchor ms-1" href="#读取文件"></a></h1>
<p>下方是一个通过<code>fs.readFile()</code>读取文件的示例：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-javascript" data-lang="javascript"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="c1">// 1. 导入fs模块，来操作文件
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="kr">const</span> <span class="nx">fs</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;fs&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="cm">/**
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="cm"> * 2. 调用 fs.readFile() 方法读取文件
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="cm"> *  - 参数1（必须）：读取文件的存放路径
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="cm"> *  - 参数2（可选）：读取文件时采用的编码格式，默认指定utf8
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="cm"> *  - 参数3（必须）：回调函数，拿到读取失败（err）和成功的结果（dataStr）
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="cm"> */</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="nx">fs</span><span class="p">.</span><span class="nx">readFile</span><span class="p">(</span><span class="s1">&#39;test.txt&#39;</span><span class="p">,</span> <span class="s1">&#39;utf-8&#39;</span><span class="p">,</span> <span class="p">(</span><span class="nx">err</span><span class="p">,</span> <span class="nx">dataStr</span><span class="p">)</span> <span class="p">=&gt;</span> <span class="p">{</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl">    <span class="cm">/**
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="cm">     * 2.1 打印失败的结果
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="cm">     *   - 如果读取成功，则 err 的值为 null，dataStr的值为 文件的内容
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="cm">     *   - 如果读取失败，则 err 的值为 错误对象，dataStr的值为 undefined
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="cm">     */</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl">    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">16</span><span class="cl">    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">&#39;-------------&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">17</span><span class="cl">    <span class="c1">// 2.2 打印成功的结果
</span></span></span><span class="line"><span class="ln">18</span><span class="cl">    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">dataStr</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="p">})</span>
</span></span></code></pre></div><p><code>fs.readFile()</code>用于异步读取文件。当<code>fs.readFile()</code>读取到文件之后，会将信息传递给<code>err</code>和<code>dataStr</code>对象。<code>err</code>对象可用于读取成功与否的判断，并且记录了读取失败时的信息；<code>dataStr</code>对象记录了读取到的文件内容。</p>]]></description>
    </item>
    
    <item>
      <title>Node.js 入门</title>
      <link>/notes/node-js/introduction/</link>
      <pubDate>Sun, 06 Aug 2023 06:48:14 +0000</pubDate>
      <guid>/notes/node-js/introduction/</guid>
      <description><![CDATA[<p>Node.js是一个基于Chrome V8引擎的JavaScript运行环境。</p>
<p>浏览器可以当作是JavaScript的前端运行环境；Node.js可以看作是JavaScript的后端运行环境。但是在Node.js中无法调用DOM和BOM等浏览器内置API。</p>]]></description>
    </item>
    
  </channel>
</rss>

