ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Node.js 新手入门

2022-02-22 17:58:47  阅读:177  来源: 互联网

标签:Node http 示例 res JavaScript js 新手入门


Node.js 简介

Node.js是一个开源并且跨平台的JavaScript运行环境。现在几乎所有的前端项目都用到了它,比如你项目中的webpack,各种CLI工具(Vue-CLI、create-react-app)都是基于Node.js开发的。

Node.js运行在Google的V8 JavaScript引擎之上,V8引擎是独立于浏览器。你只需知道V8引擎的性能是非常高效的。

一个Node.js应用运行在单一进程中,它不会为每个请求都新开一个线程,这点是和Java和PHP等语言的本质区别。Node.js在标准库中提供了一系列的异步I/O API,防止JavaScript代码阻塞,虽然标准库同样也提供同步的API,但使用同步方法并不是常态。

当Node.js执行I/O操作时,比如发起网络请求、操作数据库或者文件系统,Node.js并不会阻塞线程等待结果返回,而是会在响应返回时恢复操作。

这就使得Node.js可以在单个服务器上处理上千个并发请求,完全不用我们自己去管理线程。

Node.js还有一个独特的优势,因为所有的前端开发工程师以前使用JavaScript开发客户端应用,现在还可以通过JavaScript基于Node.js来开发服务端应用,而完全不用学习新的语言。

而且在Node.js中,我们可以尽情的去使用新的ECMAScript的标准,我们不必去等待客户更新他们的浏览器,我们只要更改我们的Node.js版本来决定我们使用哪个版本的ECMAScript标准。

大量的依赖包

npm以其简单的结构帮助Node.js的生态蓬勃发展,现在npm的依赖包已经超过100,0000个,并且免费使用。

相比其他的语言的依赖管理工具来说,npm无疑是相当成功的。

一个 Node.js 示例应用

Node.js最常见的Hello World例子就是做一个Web服务器:

const http = require('http')

const hostname = 'localhost'
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}`)
})

运行示例:

$ node server.js 
Server running at http://localhost:3000

在浏览器访问:

image-20220219212103720

首先我们引入Node.js的 http 模块

Node.js有很棒的标准库,包含了一流的关于网络操作的库。

使用http模块的createServer()方法来创建一个新的HTTP服务并且返回它。

之后使用listen()方法来设置监听端口和主机名。当服务器准备好之后,回调函数被调用。

每当收到新的请求时,就会调用 request 事件 ,提供两个对象,一个request对象(http.IncomingMessage),一个response(http.ServerResponse)对象。

这两个对象对于处理HTTP调用至关重要。

第一个提供请求的一些详细信息,在这个简单的示例中并没有使用它,但你可以使用它的请求头信息和请求数据。

第二个用于将数据返回给调用者。

在此示例中:

res.statusCode = 200

我们将statusCode属性设置为200,表示响应成功。

设置Content-TypeHeader头信息

res.setHeader('Content-Type', 'text/plain')

然后我们关闭响应,将内容作为参数传递给end()函数。

res.end('Hello World\n')

我们通过Chrome devtool工具的network来查看,我们上面设置的statusCode,Content-Type

image-20220219213836071

Response响应内容:

image-20220219214226682

欢迎我的公众号【小帅的编程笔记】,让自己和他人都能有所收获!

标签:Node,http,示例,res,JavaScript,js,新手入门
来源: https://blog.csdn.net/cmdfas/article/details/123073823

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有