这是我参与「第五届青训营」笔记创作活动的第 11 天
前言
Nodejs现如今被广大前端开发工程师所使用,并作为前端开发最友好的后端语言来开发程序的后端应用。上一篇文章讲到使用nodejs来创建一个简单的服务端的应用,本次我们可以使用nodejs来创建一个简单的客户端应用,并利用上一次创建的服务端应用来实现消息的互联。
Node客户端
一个简单的客户端应用
接下来我们将创建一个简单的客户端应用,它的功能包括简单的向一个指定的URL发送一段数据,但不设置响应监听,即发送数据后无法查看响应数据,在服务端中查看发送的数据是否发送成功,代码如下
//http创建一个模拟的客户端,向服务端发送请求
const http = require('http')
//需要发送的内容
const body = JSON.stringify({
msg: 'Hello my server'
})
const req = http.request('http://localhost:3000', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
}
})
req.end(body)
可以看到我们随便设置了一段文字内容为body,并让其JSON序列化,随后调用POST方法,并添加一个头部字段为Content-Type: 'application/json'
我们启动另一个服务端的应用,并设置监听,看看能不能将我们的body内容成功打印出来
可以看到此时当我们启动服务端的监听后,成功打印出了客户端发送过来的信息(经过buffer的处理),这样表示我们的客户端发送数据成功
可以接收数据的客户端
既然我们已经实现了发送数据的功能,那就要考虑客户端最重要的功能——接收功能,我们可以设置http的res(响应信息)的监听,让其监听在指定端口上来获取服务端发送来的信息
我们在原有的程序上稍作修改,实现一个功能,即让body信息传到服务端后,服务端重新返回该信息给客户端,客户端接收后打印在控制台中,代码如下
//http创建一个模拟的客户端,向服务端发送请求
//服务端接收到请求后将原本的请求内容发送回来
//设置res的监听,将接收到的内容输出出来
const http = require('http')
//需要发送的内容
const body = JSON.stringify({
msg: 'Hello my server'
})
const req = http.request('http://localhost:3000', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
}
}, (res) => {
const bufs = []
res.on('data', (buf) => {
bufs.push(buf)
})
res.on('end', () => {
const buf = Buffer.concat(bufs)
const json = JSON.parse(buf)
console.log('jsonMsg is:', json.msg);
})
})
req.end(body)
接下来进行测试,先启动服务端再启动客户端
可以看到我们的客户端成功接收到了服务端的消息,并将此消息打印到了控制台中,到此我们一个简单但是又不简单的客户端应用就创建完成了,大家可以再次基础上继续添加或修改某些代码,让其功能更加完备
总结
node部分最重要的部分之二服务端与应用端,我们已经为大家简单介绍了一下,使用node进行后端开发是现如今的前端工程师必备技能之一,掌握好node就是为开发一个程序打下了基石,在青训营的课程中老师为我们详细介绍了node部分的知识其中就包括了开发一个客户端与服务端等等,更多内容还在等待着大家学习