testApi(node写测试接口无需数据库,有基础数据)

项目所需配置如下

第一步: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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个好好的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值