Next.js API is back-end?



我知道Next.js是前端,但当我使用Next.js的API时,它可以响应,可以管理路由或后端的任何功能。然后我想知道";Next.js api是后端">

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

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

Next.js v13将React文件夹从pages转换为app,目前支持这两个文件夹。在v13之前,React客户端代码仅存储在pages中。

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也为我们简化了后端。

我来自asp.net世界,正在慢慢地、享受地学习javascript开发。不过,当人们把我喜欢学习的Next.js这样的东西描述为后端时,这确实与我产生了冲突。

对我来说,它在概念上更像是一个asp.net服务器端前端(Webforms、MVC、Razor Pages)等。它似乎主要关注的是生成反应式前端UI。仅仅因为一些前端功能在服务器上运行/处理,并不能使其成为后端。

它有api端点这一事实又如何呢?

对我来说,web api只是一种使前端能够通过网络与后端通信的手段,在这种情况下是互联网。对我来说,api只处理非常有限的问题;提供端点,处理去串行化,与调用方谈论http,这就是瘦而愚蠢的。

后端直到你进入应用层,然后才能真正开始架构乐趣,应用程序编排、域逻辑、依赖性反向数据访问层等,所有这些都与设计健壮软件的复杂性有关。

这么多的讨论似乎都集中在比特的位置上,是在客户端上,还是在服务器上,而不是关注什么去了哪里。

我认为Next.js是一个出色的服务器端前端框架,但无论你将其向前堆栈到后端,它都不是后端!

是。下一个js是React js的框架。您可以像前端和后端一样使用它。谢谢

Next.js主要是用于构建web应用程序的前端框架,但它还包括允许开发人员创建服务器端API的API功能。这些API可以处理请求、管理路由,并执行通常与后端开发相关的其他服务器端任务。

因此,回答这个问题:是的,可以说Next.js API是一个后端功能,尽管它与前端开发工作流程紧密集成。

很难说是!Next.js可以用于简单的后端开发,但有一定的局限性。通过其";API路线";功能,Next.js允许开发人员创建简单的API端点。这里有一个更详细的解释:

  1. 简单性和约束:Next.js的API路由是为更简单、更受约束的场景设计的。对于更复杂和可扩展的实现,您可能会发现更适合使用Express.js.等专用后端框架

  2. 数据库交互:虽然您可以从这些API路由中连接到数据库,但Next.js不提供任何专门用于数据库交互的内置工具或实用程序。

  3. 状态管理:Next.js中的API路由是无状态的。如果您需要在请求之间保持状态,则必须使用cookie或会话等解决方案。

  4. 前端交互:由于只提供了一个API,所有与前端的交互都必须通过这些使用HTTP请求和响应的API调用来完成。

  5. 安全注意事项:尽管Next.js提供了一些安全功能,但实现安全的API需要注意细节,包括身份验证、授权和其他安全实践。

总之,虽然Next.js通过其API路由提供后端功能,但它主要是为前端开发而设计的。如果你想构建一个更复杂、更强大的后端,那么专用的后端框架可能更合适。