这是我参与「第四届青训营 」笔记创作活动的的第18天
node.js应用场景
node具体应用
BFF运用
- 1.关注点分离——前端需求将与后端关注点分离,便于维护。
- 2.更维护和修改API——客户端应用程序对API结构了解较少,这将使其对API中的更改更有弹性。
- 3.更好的前端错误处理——大部分时间,服务器错误对前端用户是没有意义的。BFF可以映射出需要显示给用户的错误,而不是直接返回服务器错误,这将改善用户体验。
- 4.多种设备类型可以并行调用后端——当浏览器向BFF发出请求时,移动设备也可以这样做。这将有助于更快地获得相应服务的响应。
node.js运行结构
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}端口`)
})
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贡献代码。好处:总使用者逐步了解底层细节可以解决更复杂的问题。自我证明有助于职业发展。解决社区问题促进社区发展。