[ Node.js与前端开发实战| 青训营笔记]

46 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天

一.NodeJs的应用场景

1.前端工程化

例如打包构建工具:webpack,vite,parcel,esbuild等等。编译工具babeljs和typescript。且还处于一个不断上升的阶段。现在几乎处于无可替代的阶段。

2.Web服务端应用

nodejs做服务端开发学习门槛较低,且后续学习曲线较为平缓。而且经过很长时间的发展,已经形成丰富的社区生态和工具链,例如express、koa、egg、nest等等web框架,在npm上也由很多现成的工具可以使用。

使用node做服务端运行效率并不比Java、go这些常见的服务端语言差。而且在与前端结合同构渲染方面,nodejs有得天独厚的优势。

3.Electron跨端桌面应用

electron,tauri这些跨端框架,让前端开发者也能很容易的开发出桌面端应用。我们使用的飞书就是由electron开发的。

二.NodeJs运行时结构

1.异步I/O

nodejs执行io操作时,会在响应返回时恢复操作,而不是阻塞线程并占用额外内存去等待。

2.单线程

优点:不用考虑多线程状态同步问题,也就不需要锁;同时还能比较高效地利用系统资源;

缺点:阻塞会产生更多负面影响

解决办法:多进程或多线程

3.跨平台

Node.js跨平台 + JS无需编译环境 (+ Web跨平台 + 诊断工具跨平台)

开发成本低(大部分场景无需担心跨平台问题),整体学习成本低

三.编写node服务

第一个node服务器

const http = require('http') 

const server = http.createServer((req,res) => {res.end('hello')}) 

const port = 3000 

server.listen(port, () => {console.log(`listening on${port}`) })

使用node first.js后就可以在浏览器访问并可以看到返回结果hello

静态文件

引入fs模块

var fs = require("fs");

读取文件

param1: 读取文件路径

param2: 读取文件编码格式

param3: 回调函数 传入两个值,第一个是错误信息,第二个是读取的值

fs.readFile("./a.txt", "utf8", function (err, data) {
  console.log(err, data);
});

写入文件

param1 操作的文件

param2 写入内容

param3 回调函数 只接受1个参数 即错误信息

fs.writeFile("./a.txt", "6666", function (err) {
  console.log(err);
});