Node.js是一个开源与跨平台的JavaScript运行时环境。Node.js在浏览器外运行V8引擎。
Node.js应用程序运行于单个进程之中,无需为每个请求创建新的线程。在其标准库 中提供了一组异步的I/O原生功能(用来防止JavaScript代码被阻塞),并且nodejs中库通常使用非阻塞的范式编写的。
当Nodejs执行I/O操作时(网络读取、访问数据库或文件等),当Nodejs执行响应返回后恢复操作,而不是使用阻塞线程并浪费CPU循环等待。有关于I/O方面的知识,我会单独找一篇来讲述,可在我的文章中查看。
npm的简单结构有助于Nodejs生态系统的激增,先你怕吗仓库托管了超过100万的开源库包,完全能满足正常开发需要。
Nodejs应用程序示例如下
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('你好世界\n')
})
server.listen(port, hostname, () => {
console.log(`服务器运行在 http://${hostname}:${port}/`)
})
该示例创建了一个简单的http服务,这里就不详细解释,接下来的学习中再来讨论学习。
目前,比较常见的Nodejs框架有Express,Koa以及阿里的egg,都值得学习学习。