nodeJS | 青训营笔记

153 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的的第18天

node.js应用场景

image.png

node具体应用

BFF运用

  • 1.关注点分离——前端需求将与后端关注点分离,便于维护。
  • 2.更维护和修改API——客户端应用程序对API结构了解较少,这将使其对API中的更改更有弹性。
  • 3.更好的前端错误处理——大部分时间,服务器错误对前端用户是没有意义的。BFF可以映射出需要显示给用户的错误,而不是直接返回服务器错误,这将改善用户体验。
  • 4.多种设备类型可以并行调用后端——当浏览器向BFF发出请求时,移动设备也可以这样做。这将有助于更快地获得相应服务的响应。

node.js运行结构

image.png

node运行时的结构 IO

当node.js执行IO操作时,会在响应后返回操作,而不是阻塞线程并占用额外内存

原生node服务

const http = require("http")

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

const port = 3000

server.listen(port,()=>{
    console.log(`服务器已启动在${port}端口`)
})

image.png

const http = require("http")

const server = http.createServer((req,res)=>{
    const bufs = []
    req.on('data',(buf)=>{
        //收集用户传过来的数据
        bufs.push[buf]
    })
    req.on('end',()=>{
        const buf = Buffer.concat(bufs).toString('utf8')
        let msg = 'hello'
        try{
            const ret = JSON.parse(buf)
            msg = ret.msg
        }catch(err){
            //
        }
        const responseJson = {
            msg : `receive ${msg}`
        }
        res.setHeader('Content-Type','application/json')
        res.end(JSON.stringify(responseJson))
    })
    // res.end('hello')
})

const port = 3000

server.listen(port,()=>{
    console.log(`服务器已启动在${port}端口`)
})

http-server部署

需要注意的问题

  • 守护进程,当进程退出时需要拉起
  • 多进程:cluster便捷的利用多进程
  • 记录进程状态多诊断

总结

尝试着去贡献为node贡献代码。好处:总使用者逐步了解底层细节可以解决更复杂的问题。自我证明有助于职业发展。解决社区问题促进社区发展。