增删改查
server.js
const http = require("http")
const url = require("url")
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.stringify(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) {
// 解析为json数据
res.end(JSON.stringify(resultData))
} else {
// 可以设置404页面为html
res.writeHead(200, { "content-type": "text/html" })
res.end("404 not found")
}
})
})
server.listen(3000, () => {
console.log("监听3000端口...")
})
router.js
const url = require("url")
const { getUser, addUser, deleteUser, updateUser } = require("../controller/user.js")
function handleRequest(req, res) {
const urlObj = url.parse(req.url, true);
console.log(urlObj);
if (urlObj.pathname == "/api/getUser" && req.method == "GET") {
let resultData = getUser();
return resultData;
} else if (urlObj.pathname == "/api/addUser" && req.method == "POST") {
let resultData = addUser(req.body);
return resultData;
} else if (urlObj.pathname == "/api/deleteUser" && req.method == "POST") {
let resultData = deleteUser(urlObj.query.id);
return resultData;
} else if (urlObj.pathname == "/api/updateUser" && req.method == "POST") {
let resultData = updateUser(urlObj.query.id,req.body);
return resultData;
}
}
module.exports = handleRequest;
controller.js
module.exports={
getUser(){
return[
{
id:1,
name:"steven",
age:24
}
]
},
addUser(userObj){
console.log(userObj);
return{
code:0,
msg:"添加成功",
data:null
}
},
deleteUser(id){
console.log(id);
return{
code:0,
msg:"删除成功",
data:null
}
},
updateUser(id,userObj){
console.log(id,userObj);
return{
code:0,
msg:"更新成功",
data:null
}
}
}
跨域问题
浏览器同源策略:协议+域名+端口三者相同
任一不同就是跨域
// 设置允许跨域的域名,*代表任意域名允许
res.setHeader("Access-Control-Allow-Origin","*");
注意:正式服务器不要用*,应该用数组形式,否者接口共享.
跨域2(express-generator)
安装中间件
npm install cors -S
引入
const cors=require('cors')
app.use(cors())
网友评论