项目所需配置如下
第一步:node项目初始化
npm init --yes
nom i express
nom i cors
第二步:下载npm三方包express若想跨域还需下载cors
整体项目分部状况如下
testApi-demo # 项目目录
├── node_modules # 项目依赖的第三方包
└── routers # new express.Rouer()
└── jokeRouter.js #路由
├── data # 模仿数据库,
└── jokes.json # 笑话数据:存的是数组
├── package.json # 描述项目及项目
├── package-lock.json # 项目包版本锁定和下载地址
├── app.js # node入口文件
├── controller # 获取data中的数据
└── jokelnfo #
第一部分:get请求(简单键值对)
第一步:在app.js中配置
//在此我未设置跨域
const express = require('express')
//2.创建服务器
const app = express()
// 导入cors允许跨域
//const cors = require('cors')
// 导入笑话路由
const joke = require('./routers/jokeRouter.js')
// 在app.js中挂载
app.use('/joke',joke)
// 使用cors设置允许跨域
//app.use(cors())
//3.开启服务器
app.listen(3000,()=>{
console.log('success')
})
访问地址 172.0.0.1:3000/joke?num=1
第二步:在routers/jokeRouter.js中配置
// 导入express
const express = require('express')
// 导入准备响应前端的数据
const joke = require('../controller/jokeInfo.js')
const router = new express.Router()
router.get('/',joke)
module.exports = router
// 注意:
// module.exports用于node模块块开发,导出某个模块,对应导入require(‘xxx模块’)
// export default用于ES6中模块块开发,导出某个模块,对应导入import XXX from 'xxx模块’
第三步:在controller/jokelnfi.js控制器中设置传给前端的数据
判断写的不太对:大体是这样
//导入我在data中的数据
const dataJokes = require('../data/jokes.json')
function joke(req,res){
// 这是随机数据
// 数组长度489,随机发送一条
// req.query简单键值对get请求获取客户端传过来的数据
if(req.query.num){
function produceNum(n){
let arr=[]
let sum = []
for(let i = 1; i<=n;i++){
sum.push(dataJokes[parseInt(Math.random()*489)])
if(arr.indexOf([parseInt(Math.random()*489)])===-1){
arr.push([parseInt(Math.random()*489)])
}else{
i--
}
}
return sum
}
res.send({
status:0,
message:"获取用户列表数据成功",
data:produceNum(req.query.num)
})
}else if(req.query instanceof Object){
res.send({
status:0,
message:"获取用户列表数据成功",
data:dataJokes[parseInt(Math.random()*489)]
})
}
// console.log(dataJokes[parseInt(Math.random()*489)])
}
module.exports = joke