Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import * as express from 'express';
- import Article from '../models/article';
- import { IArticle } from '../interfaces/article';
- import { Router, Request, Response } from "express";
- import User from '../models/user';
- import { IUser } from '../interfaces/user';
- const router: Router = express.Router();
- router.get('/', async (req: Request, res: Response) => {
- try {
- const offset: number = req.query.offset ? parseInt(req.query.offset) : 0;
- const limit: number = req.query.limit ? parseInt(req.query.limit) : 0;
- const filter: {[key: string]: any} = req.query.filter ? JSON.parse(req.query.filter) : {};
- const sort: {[key: string]: number} = (req.query.sort && req.query.order)
- ? {[req.query.sort]: req.query.order}
- : {};
- const articles: IArticle[] = await Article
- .find(filter)
- .skip(offset)
- .limit(limit)
- .sort(sort)
- .populate({
- path: 'author',
- select: '-articles'
- });
- if (articles.length === 0) {
- res.sendStatus(404);
- return;
- }
- if (limit > 0) {
- //Content-Range: <unit> <range-start>-<range-end>/<size>
- const contenRangeHeader: string = 'articles ' + (offset + 1) + '-' + (offset + articles.length) + '/' + articles.length;
- res.setHeader('Content-Range', contenRangeHeader);
- }
- res.json(articles);
- } catch (error) {
- res.status(500).json({ error });
- }
- });
- // ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement