网站首页 > 技术文章 正文
Node.js 是一个开源和跨平台的 JavaScript 运行时环境,在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的内核)。Node.js的最早版本发布于2009年5月,由Ryan Dahl开发,它使用了事件驱动与非阻塞式I/O模型, 让JavaScript 运行在服务端的开发平台,这使得它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。
言外之意,Node.js的出现与普及应用进一步带动了JavaScript的继续繁荣,NPM(Node Package Manager)以其简单的结构帮助 Node.js 生态系统蓬勃发展,现在NPM仓库托管了超过 1,000,000 个开源包,你可以自由使用。Node.js 具有独特的优势,因为数百万为浏览器编写 JavaScript 的前端开发者现在无需学习完全不同的语言,就可以编写除客户端代码之外的服务器端代码。
由此是,不难看出两者之间的区别吧:一个是把浏览器的解释器封装起来作为服务器运行平台,用类似JavaScript的结构语法进行编程,在node.js上运行。另外一个JavaScript(简称JS),它 是一种轻量级的解释型或即时编译型的在浏览器中运行的脚本编程语言。
JavaScript的构成,如下:
- ECMAScript(脚本语言基础及语法)
- DOM(页面元素操作的方法库)
- BOM(浏览器操作的方法库)
而Node.js的构成,如下:
- ECMAScript(脚本语言基础及语法)
- OS(操作系统操作的方法库)
- file(文件系统操作的方法库)
- net(网络系统操作的方法库)
- database(数据库操作的方法库)
因此,目前应用系统的编程开发基本都是采用React、VUE等客户端渲染CSR框架实现的,它支持JavaScript、TypeScript等脚本语言版本。而,Node.js会在项目系统中充当中间层服务,比如服务端渲染SSR框架的中间服务层。
下面举个Node.js的Hello World代码示例,如下:
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, MaShu!\n')
})
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`)
})
要运行此示例代码,将其另存为 server.js 文件并在终端中运行 node server.js。当浏览器客户端发起Web请求时候,Node.js服务端会监听并接收到新请求,会创建一个新连接并返回Hello World, MaShu!结果给到客户端。
转载:码书网「链接」
猜你喜欢
- 2024-09-29 好程序员技术分享html5和JavaScript的区别
- 2024-09-29 10个JavaScript概念!Node.js程序员必须掌握
- 2024-09-29 Java:Java与Node.js对比学习必备(nodejs和java哪个高并发强)
- 2024-09-29 Web前端:了解Angular.js 与Node.js的主要差异
- 2024-09-29 简单科普一下 Node.js 版本的区别
- 2024-09-29 前端基础:vue.js跟node.js分别是什么?
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)