node.js中如何发起http请求,以及请求参数为中文时的解决办法

node.js中如何发起http请求,以及请求参数为中文时的解决办法

node.js中如何发起http请求

node.js中如何发起http请求可以参考这篇博文,我选用了request进行http请求,代码如下:

async function(req,res,next) {
		
		let desc =req.query.decs;

		request('http://192.168.128.9:8080/entity?param1='+desc,function(err,response,body){
			if(err){
				console.log('获取失败')
				console.log(err)
				return res.sendResult(null,400,err);
			}else{
				console.log('获取成功')
				var result = JSON.parse(body)
				return res.sendResult(result,200,"获取数据成功");
			}
		})
	}

请求参数为中文时怎么办

以上的 代码进行请求时,因为请求参数中有中文,就会报一下错误
在这里插入图片描述
解决请求参数中有中文的办法如下代码所示:

async function(req,res,next) {
		//参数中有中文时的解决办法encodeURI()
		let desc =encodeURI(req.query.decs);

		request('http://192.168.128.9:8080/entity?param1='+desc,function(err,response,body){
			if(err){
				console.log('获取失败')
				console.log(err)
				return res.sendResult(null,400,err);
			}else{
				console.log('获取成功')
				var result = JSON.parse(body)
				return res.sendResult(result,200,"获取数据成功");
			}
		})
	}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js 是基于 Chrome V8 引擎的 JavaScript 运行环境。它允许开发者利用 JavaScript 这种现代化、高效的语言编写服务器端程序,并将其部署到 Web 和应用服务领域。Node.js 接收 HTTP 请求是一个核心功能,它使得 Node.js 成为了构建高性能、事件驱动的网络应用程序的理想选择。 ### Node.js 处理 HTTP 请求的基本流程: #### 1. **建立连接**: 当客户端(通常是浏览器)向 Node.js 服务器发起请求,TCP 连接首先会建立起来。这种连接由 Node.js 的底层库 `libuv` 管理,它负责处理 I/O 操作,包括网络通信。 #### 2. **解析请求**: 一旦连接建立,Node.js 使用内置模块如 `http` 或 `https` 来接收并解析来自客户端的 HTTP 请求HTTP 请求通常包含以下几个部分: - 请求行(方法、URL、HTTP版本) - 请求头(包含各种元数据,如用户代理、接受编码等) - 请求体(如果有的话) #### 3. **执行回调函数**: 在请求解析之后,Node.js 将回调函数传递给 `request` 对象。开发者可以在这个回调函数编写处理逻辑,例如读取请求体、查询数据库、生成动态内容等等。 #### 4. **生成响应**: 处理完请求后,服务器需要将结果返回给客户端。这包括创建 HTTP 响应头部以及响应主体,然后通过 `writeHead()` 和 `end()` 方法发送回客户端。 #### 5. **关闭连接**: 响应发送完毕后,Node.js 自动关闭 TCP 连接,释放资源并等待下一个请求的到来。 ### 示例代码: 下面是一个简单的 Node.js 服务器示例,用于处理 GET 请求并返回一些文本信息: ```javascript const http = require('http'); const server = http.createServer((req, res) => { if (req.method === 'GET') { if (req.url === '/') { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World!'); } else { res.statusCode = 404; res.end('Not found'); } } else { res.statusCode = 405; res.end('Method Not Allowed'); } }); server.listen(3000, () => { console.log('Server running on port 3000'); }); ``` 这个例子展示了如何定义一个基本的 Node.js HTTP 服务器,监听并处理特定的 URL 请求。 ### 相关问题: 1. **Node.js 如何优化 HTTP 请求性能?** 2. **在 Node.js 应用如何处理并发的 HTTP 请求?** 3. **解释一下 Node.js 的非阻塞 I/O 模型如何影响其处理 HTTP 请求的方式?**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值