4.13-《手把手教您使用Nuxt3框架(Nuxt3中文开发教程)》服务端处理(server)

本文介绍了Nuxt3框架中的服务端处理,包括自动扫描的~/server/api、~/server/routes和~/server/middleware目录。讲解了MIDDLEWARE中间件如何作为服务端路由的前置处理,API接口如何封装后台数据操作,以及ROUTES路由如何自定义实现proxy功能。同时强调了多实例运行时的并发处理和数据库连接注意事项。

《手把手教您使用Nuxt3框架(Nuxt3中文开发教程)》全文电子档将分章节陆续在“nuxt”微信订阅号原创发布,敬请关注。如果您等不及,急切提前阅读和实操,可以在订阅号中有偿获取完整电子教程和后续持续更新版本。
本教程配套示例在线预览网址:https://www.dvtop.cn

Nuxt3自动扫描~/server/api、~/server/routes和~/server/middleware目录中的文件,以注册HMR支持的api和服务端处理程序。

每个文件都应该导出用defineEventHandler((event) => ......))定义的默认函数,处理程序可以直接返回JSON数据、Promise或使用event.res.end()发送响应。

server中还支持插件~/server/plugins、工具包~/server/utils、服务端存储(如redis的存取)等高级功能。其中服务端存储使用unjs/unstorage工具,支持fs (node)、localStorage (browser)、memory (universal)、overlay (universal)、http (universal)、redis、cloudflare-kv-http、cloudflare-kv-binding、github等存取方式。

注意:Nuxt3部署时可能为多实例运行,如果server中涉及操作数据库,要注意多实例并存,并发数据库连接,后台是否有共享数据等情况处理。

4.13.1 MIDDLEWARE中间件

Nuxt3将自动读取~/server/midleware中的任何文件,自动为项目创建服务端中间件。

中间件处理程序在任何其他服务端路由之前对每个请求运行,以添加或检查报头、记录请求或扩展事件的请求对象。

中间件处理程序不应返回任何内容(也不应关闭或响应请求),只应检查或扩展请求上下文或抛出错误。

注意:此中间件只会对服务端渲染路由进行处理,对于客户端渲染的页面路由不会在此中间件跟踪范围内。

~/server/middleware/logging.js

export default defineEventHandler((event) => {

  //显示所有服务端渲染的路由请求日志

  const time = new Date().toLocaleString();

  console.log(`[${time}] request url: ${event.req.url}`);

  //统一附加数据内容

  event.context.reqTime = time;

})

以上附加的数据reqTime会在“API接口”和“ROUTES路由”中使用。

4.13.2 API接口

api接口可以将后台数据存取操作统一封装,如果业务后台API较为简单且负载较小,可以将后台代码直接写在server的api模块中,实现前后端在一个工程中,方便开发和运维。

此部分将在“nuxt”微信订阅号原创发布,csdn同步更新,敬请关注。如果您等不及,急切提前阅读和实操,可以在订阅号中有偿获取完整电子教程和后续持续更新版本。

4.13.3 ROUTES路由

~/server/api中的文件在其路由中自动以/api作为前缀。对于添加不带/api前缀的服务端路由,可以将他们放在~/server/routes目录中。

routes和api类似,都可以作为数据API或直接在浏览器中访问,只是访问的URL前缀不同,可以根据应用场景来归类相应模块。

通过自定义routes,还可以实现proxy功能,这种方式在dev或build都能正常使用。

此部分将在“nuxt”微信订阅号原创发布,csdn同步更新,敬请关注。如果您等不及,急切提前阅读和实操,可以在订阅号中有偿获取完整电子教程和后续持续更新版本。

注意:由于nuxt3的路由约定机制,在nuxt.config.ts中配置proxy会出现404错误,并且只能在dev时使用。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DVTOP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值