//1.引入express
const express = require('express')
// 引用一个自己创建的模块文件
const shopdata = require('./datajson')
//2.创建web服务器
const app = express()
//3.监听8080端口
app.listen(8080,()=>{console.log('❤❤❤')})
//4.托管静态资源 public
app.use(express.static('./public'))
/** 路由 **/
// get方法 /list 访问:http://127.0.0.1:8080/list
app.get('/list',(req,res)=>{
//在这里处理访问该路由的请求和响应
// 看看是否有请求来 req
// console.log(req)
// 简单响应一个字符串
// res.send('hello')
// 可以返回html
// res.send('<!DOCTYPE html><html><head></head><body><h1>大标题</h1></body></html>')
//返回json
// res.send({"names":"tom","age":20})
// 返回自己准备的数据,使用变量名就等于适应了变量值
//这个路由地址可以拿到所有数据 http://127.0.0.1:8080/list
res.send(shopdata)
})
// 专门写一个接口查一条数据,一定会接收参数,用?的方式传参
//访问的地址:http://127.0.0.1:8080/query?id=3
app.get('/query',(req,res)=>{
// 如果是?方式传参,接收方式是req.query
let obj = req.query //{ id: '3' }
// 查看收到前台传递的参数
//console.log(obj)//obj.id ===3
// 手动查看shopdata 3
//先收到传参但是参数的是id为标准版的,实际需要在数据中拿到索引对应的那条数据,id实际比对应的索引大1因此拿到obj.id-1就是需要的那条数据
console.log(shopdata[obj.id-1])
//返回内容 筛选好的内容
res.send(shopdata[obj.id-1])
})
// 还是查询一条数据,但接收参数使用路由传参方式
//访问的地址:http://127.0.0.1:8080/search/5
app.get('/search/:id',(req,res)=>{
let obj = req.params
//查看前台参数来了,就可以响应了
console.log(obj)
//响应
res.send(shopdata[obj.id-1])
})