I was Learning NextJs and i encounter this code .I don’t know how it is working successfully because fetching db is async operation where we need await or then but here we are doing it synchronously.
export function getMeal(slug) {
return db.prepare('SELECT * FROM meals WHERE slug = ?').get(slug);
}
export default function MealDetailsPage({ params }) {
const meal = getMeal(params.mealSlug);
if (!meal) {
notFound();
}
meal.instructions = meal.instructions.replace(/n/g, `<br/>`);
return (
<>
<header className={classes.header}>
<div className={classes.image}>
<Image
src={`https://images.pexels.com/photos/376464/pexels-photo-376464.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1`}
alt={meal.title}
fill
/>
</div>
<div className={classes.headerText}>
<h1>{meal.title}</h1>
<p className={classes.creator}>
by <a href={`mailto:${meal.creator_email}`}>{meal.creator}</a>
</p>
<p className={classes.summary}>{meal.summary}</p>
</div>
</header>
<main>
<p
className={classes.instructions}
dangerouslySetInnerHTML={{
__html: meal.instructions,
}}
></p>
</main>
</>
);
}
Working on server in NextJs
New contributor
Dhruv Property is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.