目录
通过pathname判断请求地址
const http = require('http');
const routerModal = require('./router/index')
const server = http.createServer((req,res)=>{
res.writeHead(200,{'content-type':'application/json;charset=UTF-8'})
let resultData = routerModal(req,res);
if(resultData){
res.end(JSON.stringify(resultData))
}else{
res.writeHead(404,{'content-type':'text/html'})
res.end('404 not found')
}
})
server.listen(3000,() => {
console.log('监听3000端口')
})
router/index.js:
const url = require('url')
function handleRequest(req,res) {
let urlObj = url.parse(req.url,true);
console.log(urlObj)
if(urlObj.pathname === '/api/getMsg'&&req.method === 'GET'){
return {
msg:'获取成功'
}
}
if(urlObj.pathname === '/api/updateData'&&req.method === 'POST'){
return {
msg:'更新成功'
}
}
}
module.exports = handleRequest
结果:
http://localhost:3000/api/getMsg?name=%E9%9D%99%E9%9D%99%E4%B8%83%E5%88%86%E9%86%89&age=20
使用promise处理post请求:server.js
const http = require('http');
const routerModal = require('./router/index')
const getPostData = (req) => {
return new Promise((resolve, reject) => {
if (req.method !== 'POST') {
resolve({})
return
}
let postData = '';
req.on('data', chunk => {
postData += chunk;
})
req.on('end', () => {
console.log(postData)
resolve(JSON.parse(postData))
})
})
}
const server = http.createServer((req, res) => {
res.writeHead(200, { 'content-type': 'application/json;charset=UTF-8' })
getPostData(req).then((data) => {
req.body = data
let resultData = routerModal(req, res);
if (resultData) {
res.end(JSON.stringify(resultData))
} else {
res.writeHead(404, { 'content-type': 'text/html' })
res.end('404 not found')
}
})
})
server.listen(3000, () => {
console.log('监听3000端口')
})
处理数据的文件controller/user.js
module.exports = {
getUserList(){
return [
{
id:1,
name:'jingjing',
city:'北京'
},
{
id:2,
name:'xiaoming',
city:'广州'
},
{
id:3,
name:'小红',
city:'上海'
}
]
},
addUser(userObj){
console.log(userObj);
return {
code:0,
msg:'新增成功',
data:null
}
},
delectUser(id){
console.log(id)
return {
code:0,
msg:'删除成功',
data:null
}
},
updateUser(id,userObj){
console.log(id,userObj);
return {
code:0,
msg:'更新成功',
data:null
}
}
}
路由编写文件
const url = require('url')
const {getUserList,addUser,delectUser,updateUser} = require('../controller/user')
function handleRequest(req,res) {
let urlObj = url.parse(req.url,true);
console.log(urlObj)
if(urlObj.pathname === '/api/getUserList'&&req.method === 'GET'){
let resultData = getUserList()
console.log(resultData)
return resultData;
}
if(urlObj.pathname === '/api/addUser'&&req.method === 'POST'){
let resultData = addUser(req.body);
return resultData;
}
if(urlObj.pathname === '/api/delectUser'&&req.method === 'POST'){
let resultData = delectUser(urlObj.query.id);
return resultData;
}
if(urlObj.pathname === '/api/updateUser'&&req.method === 'POST'){
let resultData = updateUser(urlObj.query.id,req.body);
return resultData;
}
}
module.exports = handleRequest