-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrouter.js
49 lines (39 loc) · 1.24 KB
/
router.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const express=require('express')
const router=express.Router()
const Model=require('./productModel.js')
router.post('/add', async (req,res)=>{
const product=req.body;
const newProduct= new Model(product);
try {
await newProduct.save();
res.status(201).json(newProduct)
} catch (error) {
res.status(409).json({message:error.message})
}})
router.get('/get',async (req,res)=>{
try {
const {company,name,sort}=req.query
const queryObject={}
if(company){
queryObject.company=company
}
if(name){
queryObject.name={ $regex: name, $options: "i" }
}
let apiCall=Model.find(queryObject)
if(sort){
let apiSort=sort.replace(","," ")
apiCall=apiCall.sort(apiSort)
console.log(apiSort)
}
let page=Number(req.query.page) || 1
let limit=Number(req.query.limit) || 3
let skip=(page-1) * limit
apiCall=apiCall.skip(skip).limit(limit)
console.log(queryObject)
const products=await apiCall
res.status(200).json(products)
} catch (error) {
res.status(404).json({message:error.message})
}})
module.exports=router