前端培训-中级阶段(44)- node 10.x 介绍及使用

前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,如今前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提高技术水平,打牢基础知识的中心思想,咱们开课啦(每周四)。javascript

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境。 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度很是快,性能很是好。css

支持 windows、linux、macOS、Docker 镜像。前端

Node.js 与浏览器的区别

  1. 在浏览器中,大多数时候作的是与 DOM 或其​​他 Web 平台 API(例如 Cookies)进行交互。 固然,那些在 Node.js 中是不存在的。 没有浏览器提供的 documentwindow、以及全部其余的对象。
  2. 在浏览器中,不存在 Node.js 经过其模块提供的 API,例如文件系统访问功能。
  3. 在 Node.js 中,能够控制运行环境。 除非构建的是任何人均可以在任何地方部署的开源应用程序,不然你能知道会在哪一个版本的 Node.js 上运行该应用程序。 与浏览器环境(你没法选择访客会使用的浏览器)相比起来,这很是方便。
  4. Node.js 使用 CommonJS 模块系统,而在浏览器中,则还正在实现 ES 模块标准。
    在实践中,这意味着在 Node.js 中使用 require(),而在浏览器中则使用 import

固然,若是你不想看上面那些内容,咱们能够看下面的表格java

特性 Node 浏览器 备注
顶级对象 global window
AJAX require('http') XMLHttpRequest 能够考虑使用 axios 跨平台
文件系统 require('fs') × 据说 chrome 要加,没仔细研究如何保证安全
模块系统 CommonJS,require() ES,import babel 在手,都是小问题
运行环境 服务器 客户端 其实环境的问题仍是存在的
HTML、HTML五、css、css3 ×
事件循环 √,和浏览器的不一致,node 本身也修改过 √,基本上各个厂商的能保持一致
流概念、二进制数据 √,Buffer,Stream √,Blob,ArrayBuffer

Node 能够作什么?

web 服务器

启动一个 web 服务器node

// 依赖 http 模块建立 web 服务器
const http = require('http')

// 设置监听的端口
const hostname = '127.0.0.1'
const port = 3000

// 建立一个 web 服务
const server = http.createServer((req, res) => {
 res.statusCode = 200
 // 注意一下编码问题哟
 res.setHeader('Content-Type', 'text/plain; charset=UTF-8')
 res.end('你好,欢迎访问 https://www.lilnong.top')
})

// 使用上面设置好的端口监听
server.listen(port, hostname, () => {
 console.log(`服务器运行在 http://${hostname}:${port}/`)
})

脚本程序

获取当前目录下面的全部 json 文件,进行处理 node app.jslinux

// app.js 文件
const fs = require("fs");
const path = require('path');
const readDir = (entry, paths = []) => {
    const dirInfo = fs.readdirSync(entry);
    dirInfo.forEach(item=>{
        const location = path.join(entry,item);
        const info = fs.statSync(location);
        if(info.isDirectory()){
            console.log(`dir:${location}`);
            readDir(location, [item]);
        }else{
            if(/.json$/.test(location)){
                // readFile(location, paths)
            }
        }
    })
}
// console.log('__dirname', __dirname)
readDir(__dirname);

交互式使用

上面的代码咱们能够直接在 cmd 中使用
image.pngios

微信公众号:前端linong

clipboard.png

参考文献

  1. 前端培训目录、前端培训规划、前端培训计划
相关文章
相关标签/搜索