nodejs创建客户端 | 青训营笔记

42 阅读3分钟

这是我参与「第五届青训营」笔记创作活动的第 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内容成功打印出来

client1-test.png

可以看到此时当我们启动服务端的监听后,成功打印出了客户端发送过来的信息(经过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)

接下来进行测试,先启动服务端再启动客户端

client2-test.png

可以看到我们的客户端成功接收到了服务端的消息,并将此消息打印到了控制台中,到此我们一个简单但是又不简单的客户端应用就创建完成了,大家可以再次基础上继续添加或修改某些代码,让其功能更加完备

总结

node部分最重要的部分之二服务端与应用端,我们已经为大家简单介绍了一下,使用node进行后端开发是现如今的前端工程师必备技能之一,掌握好node就是为开发一个程序打下了基石,在青训营的课程中老师为我们详细介绍了node部分的知识其中就包括了开发一个客户端与服务端等等,更多内容还在等待着大家学习