Next.js API 是后端?

Log*_*rim 9 api backend next.js

我知道 Next.js 是前端,但是当我使用 next.js 的 API 时,它可以响应并可以管理路由或任何有关后端的事情都可以。然后我想知道“Next.js api 是后端?”

Han*_*dev 11

是的。Next.js 是客户端预渲染的 React 应用程序,用户可以查看和交互,可以视为前端。同时,它也做服务端渲染和API路由,可以执行服务端代码和访问数据库中的数据,可以认为是后端。

  • 静态页面生成方法(例如“getStaticProps”)始终在服务器上运行,而不是在客户端上运行。因此,在这些方法中仅使用服务器端代码是安全的。您可以从[文档](https://nextjs.org/docs/basic-features/data-fetching/get-static-props#when-does-getstaticprops-run)了解更多信息话虽如此,它确实需要开发人员充分了解哪些代码会发送给客户端,哪些不会发送给客户端,以确保“安全”。 (2认同)

dan*_*ive 11

动态路由有两个文件夹pagesapi. 要留在前端或客户端,请将您的 JavaScript / React DOM 代码放在pages. Next.js 的后端或服务器端与api文件夹。该api所以这不是静态页面生成安全的JavaScript代码是不是在浏览器但Node.js的执行。当 Next.js 使用 Vercel 托管在云中时,您的服务器端 JS 将呈现,但在 Netlify 或其他静态主机上,该api文件夹将被忽略或引发错误。就像在浏览器中运行 Express.js 代码一样,JIT 渲染会失败

  • 猜猜这是一个全栈框架 (3认同)

Yil*_*maz 5

Next.js api 提供 REST API。我们正在内部向 next.api 路由发送请求。这样,您就可以在 next.js 项目中添加业务逻辑,而无需编写任何额外的自定义服务器代码,也无需配置任何 api 路由。在node.js应用程序中,我们需要将api代码分成控制器和路由,然后在express应用程序中注册每个路由,然后您需要确保以正确的顺序注册路由。

目前唯一的缺点是,vercel 不支持 websocket 连接。所以你无法获得实时服务。但您可以使用 SWR 使其几乎实时。有关 SWR 的更多信息基本上,使用 swr,您可以告诉 next.js 定期获取数据,将响应保存在缓存中并为其提供服务。

借助此功能,Next.js 提供了构建全栈应用程序的一切。所以 next.js 也为我们简化了后端。