一文带你掌握nest.js访问静态资源

简介: 一文带你掌握nest.js访问静态资源

前言

Nest的目标是成为一个与平台无关的框架。平台独立性使创建可重用的逻辑部分成为可能,开发人员可以在几种不同类型的应用程序中利用这些逻辑部分。从技术上讲,一旦创建了适配器,Nest就能够与任何Node HTTP框架一起使用。有两个开箱即用的HTTP平台支持:express和fastify。


无论使用哪种平台,它都会公开自己的应用程序接口。


NestExpressApplication

NestFastifyApplication

当我们把这种类型传递时,我们的app对象上会具有专门针对该平台的方法。但是注意一点,除非实际想要访问底层平台 API,否则无需指定类型。


文件配置

在昨天我们讲到nest.js文件上传 一文带你弄懂nest.js文件上传,我们拿到其中一个文件的路径试一下,我们要用到的是文件的path


image.png


 发现直接访问会报404错误

image.png

回到main.ts中配置一下,为nest指定我们要用的是Express,并且配置它的静态方法useStaticAssets()


它接受两个参数

path: 文件存放位置
options: 可选配置项 (用于匹配文件前缀)
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { NestExpressApplication } from '@nestjs/platform-express';
async function bootstrap() {
  const app = await NestFactory.create<NestExpressApplication>(AppModule);
  app.useStaticAssets('uploads', { prefix: '/uploads' })
  await app.listen(3000);
}
bootstrap();

image.png


可以看到options里面配置项还是比较多的 ,只挑几种解释一下


dotfile: 点阵文件是各种程序的配置文件,它们帮助这些程序管理其功能。例如.config .bash等

etag:etag是URL的tag,用来标示URL对象是否改变,可用于缓存

maxAge: Cache-Control header的指令,会告诉客户端 index.html 将被视为 100000 毫秒的“新鲜”,因此在 maxAge 之前没有必要再次向服务器询问该文件过去。 客户端在此期间保留此文件,它与服务器缓存无关。

extensions: 文件拓展名

redirect: 重定向,当我们访问一个url时,如果重定向可以帮我们跳转到对应的url地址

prefix: 路由前缀


image.png

当我们配置好之后,再次访问已经可以了


image.png


总结

访问静态资源的方法还是简单的,要注意的就是path要和存放的文件位置要一样。

相关文章
|
6月前
|
JavaScript 前端开发
js中访问节点和创建节点的方法都有什么?
js中访问节点和创建节点的方法都有什么?
31 0
|
8月前
|
JavaScript API
使用Node.js访问API的示例
下面是一个使用Node.js访问API的示例代码:
|
8月前
|
域名解析 监控 JavaScript
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
490 0
|
5天前
|
JavaScript 前端开发
JavaScript闭包允许内部函数访问并保留外部函数的变量,即使外部函数执行结束
【5月更文挑战第13天】JavaScript闭包允许内部函数访问并保留外部函数的变量,即使外部函数执行结束。在游戏开发中,闭包常用于创建独立状态的角色实例。例如,`createCharacter`函数生成角色,内部函数(如`getHealth`、`setHealth`)形成闭包,保存角色的属性(如生命值)。这样,每个角色实例都有自己的变量副本,不互相影响,从而实现角色系统的独立性。
21 0
|
5天前
|
JavaScript 前端开发 中间件
Node.js—Express使用、Express 路由 、Express 中间件、托管静态资源、使用 Express 写接口、node.js链接sqlite数据库
Node.js—Express使用、Express 路由 、Express 中间件、托管静态资源、使用 Express 写接口、node.js链接sqlite数据库
131 0
|
5天前
|
存储 JavaScript 前端开发
数组:数组是JS中的一种特殊对象,用于存储一组有序的数据。需要掌握数组的创建、访问、修改以及各种内置方法。
数组:数组是JS中的一种特殊对象,用于存储一组有序的数据。需要掌握数组的创建、访问、修改以及各种内置方法。
37 2
|
7月前
|
Web App开发 JavaScript 前端开发
通过 SAP UI5 ODataModel API 在 JavaScript 代码里访问 OData 元数据试读版
通过 SAP UI5 ODataModel API 在 JavaScript 代码里访问 OData 元数据试读版
53 1
|
7月前
|
JavaScript 前端开发 安全
windows 环境下使用 Node.js 访问 SAP OData 遇到 unable to get local issuer certificate
windows 环境下使用 Node.js 访问 SAP OData 遇到 unable to get local issuer certificate
56 0
|
7月前
|
JavaScript 安全 应用服务中间件
Node.js 应用访问 https 服务器时遇到的错误消息 unable to get local issuer certificate
Node.js 应用访问 https 服务器时遇到的错误消息 unable to get local issuer certificate
79 1
|
8月前
|
NoSQL JavaScript Java
MongoDB 入门教程系列之一:开发环境搭建以及 Node.js 和 Java 的读写访问
MongoDB 入门教程系列之一:开发环境搭建以及 Node.js 和 Java 的读写访问
86 0