Node.js 与前端开发实战|青训营笔记Day 7(部分笔记)

47 阅读1分钟

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

本节课的知识要点:

  1. 介绍 Node.js 的应用场景
  2. 介绍 Node.js 运行时结构
  3. 如何用编写 Http Server
  4. 延伸话题

本节课的详细知识点:

  • 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较低,前端代码编写时需要考虑服务端渲染情况