Nest:配置静态资源和模块引擎

Nest 配置静态资源

在根目录新建 public 目录,然后在 images 目录保存一个图片,比如 pic1.jpg:

这样就可以通过 http://localhost:3000/images/pic1.jpg 来访问图片了。

我们也可以配置虚拟目录,比如我们想通过 http://localhost:3000/static/images/pic1.jpg 来访问 public 目录里面的文件,这样写:

Nest 配置模版引擎

  1. 安装对应的模板引擎 比如 ejs
bash 复制代码
npm i ejs -D
  1. 配置模版引擎:
  1. 项目根目录新建 views 目录然后新建 index.ejs
  1. 使用创建的 ejs 文件渲染页面
  1. 访问页面

Nest 模板引擎结合 Post 表单演示

创建 UserControll:

如果忘记如何创建的命令,输入 nest g --help 可查看帮助:

自动帮我们生成了文件并导入到 AppModule 根模块:

创建 user.ejs:

内容如下

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Document</title>
  </head>
  <body>
    <form action="/user/doAdd" method="post">
      <input type="text" name="username" placeholder="请输入用户名" />
      <br />
      <input type="text" name="age" placeholder="年龄" />
      <br />
      <input type="submit" value="提交" />
    </form>
  </body>
</html>

UserController 内容如下:

typescript 复制代码
import { Controller, Get, Post, Body, Response, Render } from '@nestjs/common';

@Controller('user')
export class UserController {
  @Get()
  @Render('default/user')
  index() {
    return { name: '张三' };
  }

  @Post('doAdd')
  doAdd(@Body() body, @Response() res) {
    console.log(body);
    res.redirect('/user'); //路由跳转
  }
}

访问页面:

输入内容提交:

此时 form 表单会提交 POST 请求,路径是 /user/doAdd,命中我们的 UserController 路由

会打印 body 然后重定向页面到 user:

相关推荐
东风破_8 分钟前
React 受控组件与非受控组件:从一个输入框讲清表单数据流
前端
尤乐娃子16 分钟前
进入大厂(厂子大)实习Day12
前端·笔记·实习
程序员爱钓鱼20 分钟前
Rust Copy详解:隐式复制与轻量数据类型
前端·后端·rust
四六的六2 小时前
端侧模型多端部署实战:从格式转换到灰度发布,Web 和移动端统一部署流水线
前端·人工智能·大模型·ai编程·ai模型·ai产品·端侧ai
凌云拓界4 小时前
NodeVerdict | .ndv 二进制格式:为 WASM 解码器设计的紧凑布局
安全·架构·开源·node.js·编辑器·软件工程·wasm
独隅4 小时前
前端离线暂停更新策略:Service Worker 与 PWA 的静默控制实践
前端
妙码生花4 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(五十八):后台系统配置管理实现
前端·后端·go
用户938515635075 小时前
React 受控/非受控组件与 React.memo 性能优化——从本质到实战
前端·javascript·react.js
IT_陈寒5 小时前
Java并行流把我坑惨了:原来不是线程安全的!
前端·人工智能·后端