nodejs学习笔记之 http 模块(一) 响应数据

本文介绍了如何使用Node.js的http模块搭建服务,并通过监听控制台输出确认服务运行。在浏览器访问localhost:3000时,会触发两次'有人连接了'的输出,因浏览器图标请求。当发送请求但未结束响应时,浏览器会显示加载状态。通过res.end()结束响应,结合res.write()返回数据。然而,直接返回中文会导致乱码,解决方法是设置响应头Content-Type为'utf-8'确保中文正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTTP模块


网页程序是以上线作为最终目标,这就需要我们掌握http模块。
首先需要创建http模块。创建一个名为http.js的文件

//这个模块专门用来搭建服务 供客户端请求以及向客户端响应
const http = require('http');

模块创建好以后需要搭建服务

/*创建服务
    当客户端向服务端发起请求时 就会触发回调函数
*   回调函数的参数
*       req 请求体
*       res 响应体
*
* */
var server = http.createServer(function(req,res){
	console.log('有人连接了')
})

此时虽然服务搭建完成,但无法看到连接状态,我们可以使用

/*
    server.listen(端口号,回调函数)

        端口号的范围是 [0,65536)
        当3000端口处的服务成功开启时 会自动触发
*
* */
server.listen(3000,function(){
    console.log('3000端口成功运行')
})

来监测服务是否运行。运行文件,控制台输出3000端口成功运行证明服务开启成功。同时打开浏览器,输入localhost:3000,再检查控制台,可以发现控制台输出了 有人连接了 ,说明当服务器在浏览器端开始运行时,就会执行

var server = http.createServer(function(req,res){
	
})

中包含的代码。
在使用谷歌浏览器时,会输出两遍有人连接了,是因为谷歌浏览器对图标也会进行一次请求。其他浏览器不会出现这种情况
但当我们输入localhost:3000后会发现虽然我们服务开启成功打印出了3000端口已连接,但浏览器的状态一直是在转圈中,这是因为虽然发起了请求但没有数据返回,客户端一直处于等待状态。只要我们在请求代码中结束请求即可。

let server = http.createServer(function (req,res) {
    console.log("somebody comein");
    res.end()
})

res.end的作用就是结束响应。
同时我们可以使用res.write方法向页面返回一些数据

 res.write('我是第一波数据') ;//服务端向客户端响应数据

重启服务并重新进入localhost:3000会发现不再转圈,页面出现了内容。但这个内容是乱码。造成这个问题的原因给服务器返回了中文的原因。要想返回中文,需要加上返回头

 res.setHeader('content-type','text/html;charset=utf-8')

作用是 保证响应的数据不乱码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值