这是我参与「第四届青训营」笔记创作活动的第12天
前言
Node.js是一个用起来非常非常广泛的框架,在前端中有着非常广泛的应用。所以今天我们就来学一手Node.js捏。
应用场景
在前端工程中,Node.js的重要性不言而喻,目前还没有能够很好替代的东西;在web服务端应用中,它也有着自己的优势;如果你想要写Electron应用的话,也可以使用Node.js,也是非常值得考虑的。
运行特点
Node.js在运行时主要有这三个特点:
第一是异步性。众所周知,我们在加载网页的时候,很多东西都是同时加载的,一定不能在同一个线程中的先后顺序中进行运算,这个时候异步性就显得非常重要了。当Node.js执行I/O操作的时候,会在响应返回后恢复操作,而不是阻塞线程、占用内存,对系统的压力就不会那么大了。
第二就是单线程。JavaScript本身是不支持多线程的,虽然他看上去像是缺点,但是这样当你在同时运行多个网页的时候,可以有效降低系统资源消耗。而且因为没有多线程,你就不用考虑自锁等操作了,也节省了程序员的脑力。
第三就是跨平台。跨平台这可以说是相当重要的特性了。几乎世界上所有的电子产品都可以上网,所以说一个跨平台的框架就显得非常的重要。
我们来编写一个Http Server
那么首先我们应该安装一下Node.js。上官网安装就行了。然后就可以进行Http Server和Client的编写。
const http = require('http')
const hostname = '127.0.0.1'
const port = 3000
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain')
res.end('Hello World\n')
})
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`)
})
然后需要编写静态文件服务器、React SSR服务,需要的时候也可以使用inspector来进行调试诊断。
其他
Node.js是一个开源的项目,所以我们可以自己去看他的代码,也可以贡献自己的代码,帮助它变得更好捏。
总结
还是那句话,看到了一个框架,先去看文档,多写才是硬道理。