Our great sponsors
-
next-connect
The TypeScript-ready, minimal router and middleware layer for Next.js, Micro, Vercel, or Node.js http/http2
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
import { getMongoClient } from 'lib/mongodb'; async function createHandler(req, res) { const { text } = req.body; const createdAt = new Date(); if (!text) { res.status(400).json({ message: 'Validation errors', errors: { text: ['Please add a text value'], }, }); return; } const goals = (await getMongoClient()).db.collection('goals'); const { insertedId: _id } = await goals.insertOne({ text, createdAt, }); res .status(201) .json({ _id, text, createdAt }); } async function listHandler(req, res) { const goals = (await getMongoClient()).db.collection('goals'); const list = []; const cursor = goals.find({}, { sort: { createdAt: 1 }, }); if ((await goals.estimatedDocumentCount()) === 0) { res.status(204).send(undefined); return; } while (await cursor.hasNext()) { const goal = await cursor.next(); list.push(goal); } res.json(list); } // Instead of this you should use https://github.com/hoangvvo/next-connect export default function handler(req, res) { if (req.method === 'POST') { createHandler(req, res); } else { listHandler(req, res); } }
For futher code see my repository
Related posts
- Is there any elegant way of executing same logics in getServerSideProps of every page?
- Awesome Next.js API Routes with next-api-decorators
- calling functions before nextjs api function
- Auth: What do do with a returned jwt
- GitHub - neg4n/next-api-compose: 🧬 Simple, dependency free, error aware and powerful utility to compose chain of multiple middleware into one Next.js API Route.