[TOC]
>[success] # 处理http请求的综合示例
在上两章里面讲解了 **nodejs** 如何处理接收到的 **post请求** 与 **get请求** 的数据,之前还遗漏了一个点,就是后端 **response** 给前端 **返回数据时候,可以指定返回数据的格式** ,那么接下来在下面代码中演示一下:
~~~
// 引入node自带的http模块
const http = require('http')
// 引入querystring模块
const querystring = require('querystring')
// 通过http创建服务
const server = http.createServer((req, res) => {
const method = req.method
const url = req.url
const path = url.split('?')[0]
const query = querystring.parse(url.split('?')[1])
// 设置返回格式为 JSON
res.setHeader('Content-type', 'application/json')
// 返回的数据
const resData = {
method,
url,
path,
query
}
// 返回
if(method === 'GET'){
res.end(
// 这里返回的是字符串,但是浏览器只知道你是字符串并不知道你这个字符串的类型最终是html还是json,所以上面需要告诉浏览器我返回的字符串类型是json
JSON.stringify(resData)
)
}
if(method === 'POST'){
let postData = ''
req.on('data', chunk => {
postData += chunk.toString()
})
req.on('end', () => {
resData.postData = postData
res.end(
// 这里返回的是字符串,但是浏览器只知道你是字符串并不知道你这个字符串的类型最终是html还是json,所以上面需要告诉浏览器我返回的字符串类型是json
JSON.stringify(resData)
)
})
}
})
// 监听3000端口
server.listen(8001)
~~~
上面的代码中设置了 `res.setHeader('Content-type', 'application/json')` 这段代码,意思是 **服务端告诉浏览器** 我返回的格式是 **json** 格式,而并非是简单的 **字符串格式**。
- NodeJS基础
- 什么是NodeJS
- npm
- Node.js+Express+Koa2+开发Web Server博客
- 下载和安装node
- nodejs和js的区别
- commonjs-演示
- nodejs如何debugger
- server端与前端的区别
- 项目需求分析
- 开发接口(不使用任何框架)
- http-概述
- 处理get请求
- 处理post请求
- 处理http请求的综合示例
- 搭建开发环境
- 初始化并且开发路由
- 开发博客项目之数据存储
- MySql介绍
- 数据库操作(创建和增、删、查)
- Nodejs 操作 Mysql
- Nodejs 链接 mysql 做成工具
- API 对接 MySQL
- 开发博客项目之登陆
- cookie-介绍
- cookie用于登录验证
- cookie做限制