@hope-dies-here/next-blog-one
Version:
A plug-and-play Next.js blog feature for easy integration via npx.
36 lines (29 loc) • 1.04 kB
JavaScript
import { NextResponse } from 'next/server';
import pool from '../../lib/db';
export async function GET() {
try {
// List all posts
const { rows } = await pool.query('SELECT * FROM posts ORDER BY created_at DESC');
return NextResponse.json(rows);
} catch (error) {
console.error('Database error:', error);
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
}
export async function POST(request) {
try {
// Create a new post
const { title, content } = await request.json();
if (!title || !content) {
return NextResponse.json({ error: 'Title and content are required' }, { status: 400 });
}
const { rows } = await pool.query(
'INSERT INTO posts (title, content) VALUES ($1, $2) RETURNING *',
[title, content]
);
return NextResponse.json(rows[0], { status: 201 });
} catch (error) {
console.error('Database error:', error);
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
}