这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
本节课的知识要点:
- 介绍 Node.js 的应用场景
- 介绍 Node.js 运行时结构
- 如何用编写 Http Server
- 延伸话题
本节课的详细知识点:
- Node.js 的应用场景:
前端工程化、Web服务端应用、Electron跨端桌面应用
a.前端工程化:早期ajax,jquery较流行时,直接在页面中引入需要的lib即可;随着模块化、transpile逐渐成熟、需求增多,对后端能力的需求逐渐强烈。
b.Web服务端应用其开发效率较高,其社区生态丰富及工具链成熟(npm,V8 inspector)
c.Electron跨端桌面应用:vscode,slack,discord,zoom,在大公司比较常见
- Node.js 运行时的结构:
异步I/O、单线程、跨平台
- 编写 Http Server
示例有:Hello World、JSON、Client
其中,Hello World
const http = require('http')const port = 3000const server = http.createServer((req,res) => { res.end('hello')})server.listen(port() => { console.log(`server listens on: ${port}`)})
-
编写静态文件
const http = require('http')const fs = require('fs')const path = require('path')const url = require('url')const port = 3000const server = http.createServer((req, res) => { const info = url.parse(req.url) const file = fs.createReadStream(path.resolve(__dirname, '.' + info.pathname)) file.pipe(res)})server.listen(port, () => { console.log('server listens on: ${port}')})
静态文件服务与高性能、可靠的服务相比,还差:CDN缓存+加速、分布式存储,容灾
外部服务有:阿里云,七牛云等
-
React SSR
SSR相较于传统HTML模板引擎,是可以避免重复编写代码的
而相比SPA,SSR首屏渲染更快,SEO友好
但SSR的缺点是通常情况下qps较低,前端代码编写时需要考虑服务端渲染情况