96SEO 2026-06-11 17:16 0
先说点儿前戏,咱们聊聊 NestJS + TypeScript 那点事儿
兄弟,你要是对全栈有点儿好奇,先别急。
我跟你讲,NestJS 就像后端的 Vue CLI,装完它,你基本上Neng把 Node 当成自己的玩具。

哈哈,这玩意儿自带装饰器,写起来跟写前端代码差不多。
别担心,我这篇文章会一步步手把手教你搭骨架,保证你半小时内跑通。
环境准备——别偷懒,这一步真的要Zuo好第一步,装 Node.js,推荐 LTS 版。
然后全局装 Nest CLI:npm i -g @nestjs/cli。
害,忘了说还得装好 TypeScript,npm i -D typescript。
终端敲一下 node -vnpm -vnest -v kankan版本号dou出来了没。
打开终端,跑 nest new ai-fullstack-demo。
选 npm 包管理器,等它帮你初始化好结构。
目录大概长这样:
/src: 核心业务代码dou在这儿。
/src/app.module.ts: 根模块,相当于入口文件。
/src/main.ts: 启动脚本,配置端口啥的。
/src/modules: 放业务模块的地方,以后dou会往里加东西。
骨架设计——模块化才是王道咱们这套骨架至少要三个模块:
User 模块:登录、注册、用户信息管理。
Ai 模块:对接大模型 API,把生成的内容存库。
Prisma模块:数据库交互层。
Nest CLI 一键生成模块、控制器、服务nest g module modules/user
nest g controller modules/user --no-spec
nest g service modules/user --no-spec
Ai 模块同理,只是把路径换成 /modules/ai.
Prisma geng适合 TS 开发者,它会自动生成类型,让你写代码时不会踩坑;TypeORM 则是官方推荐,geng贴近 Nest 的装饰器风格。
Prisma 实操速成# 安装依赖
npm i @prisma/client
npm i -D prisma
npx prisma init
# 编辑 schema.prisma
model User {
id String @id @default)
username String @unique
email String @unique
password String
createdAt DateTime @default)
updatedAt DateTime @updatedAt
aiRecords AiRecord
}
model AiRecord {
id String @id @default)
content String
type String
status String @default
userId String
createdAt DateTime @default)
updatedAt DateTime @updatedAt
user User @relation
}
# 同步数据库
npx prisma migrate dev --name init
# 自动生成客户端
npx prisma generate
import { Injectable, OnModuleInit } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';
@Injectable
export class PrismaService extends PrismaClient implements OnModuleInit {
async onModuleInit {
await this.$connect;
// console.log;
}
}
Ai 模块核心业务——先搞个「伪」AI 接口再说正经事儿
Create DTO
export class GenerateTextDto {
prompt: string;
type: string;
}
Ai Service 真正干活的地方
import { Injectable } from '@nestjs/common';
import { PrismaService } from '../../prisma/prisma.service';
import { GenerateTextDto } from './dto/generate-text.dto';
@Injectable
export class AiService {
constructor {}
async generate {
// 假装调用 OpenAI / 通义千问啥的,这里直接拼字符串。
const content = `AI 小助手:根据「${dto.prompt}」生成的 ${dto.type} 内容。`;
// 把结果存进数据库。
const record = await this.prisma.aiRecord.create({
data: { content, type: dto.type, userId: 'dummy-user-id' },
});
return { success: true, data: { id: record.id, content } };
}
}
Ai Controller 暴露路由
import { Controller, Post, Body } from '@nestjs/common';
import { AiService } from './ai.service';
import { GenerateTextDto } from './dto/generate-text.dto';
@Controller
export class AiController {
constructor {}
@Post
async generate dto: GenerateTextDto) {
return this.aiSrv.generate;
}
}
User 模块快速搭建 —— 登录注册先占个位
User Entity
export class User {
id: string;
username: string;
email: string;
}
User Service 简单实现
User Controller 暴露几个Zui基本的接口import { Injectable } from '@nestjs/common'; @Injectable export class UserService { private users = ; findAll { return this.users; } findOne{ return this.users.find; } }
Main.ts 与 AppModule——把一切串起来import { Controller, Get, Param } from '@nestjs/common'; import { UserService } from './user.service'; @Controller export class UserController { constructor{} @Get list{ return this.srv.findAll;} @Get detail id:string){ return this.srv.findOne;} }
import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; async function bootstrap{ const app = await NestFactory.create; await app.listen; console.log; } bootstrap;
Testing —— 用 Postman / Insomnia 随便测一遍吧!import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { PrismaService } from './prisma/prisma.service'; import { UserModule } from './modules/user/user.module'; import { AiModule } from './modules/ai/ai.module'; @Module({ imports:, providers:, }) export class AppModule {}
# 启动项目 npm run start:dev 或 npm run start:watch
# 测试 AI 接口 POST http://localhost:3000/api/ai/generate Body : { "prompt":"写一段关于全栈开发的宣传语","type":"text" }
# 若返回类似下面结构,就算成功啦:
{
"success":true,
"data":{"id":"xxxx-xxxx","content":"AI 小助手:根据「写一段关于全栈开发的宣传语」生成的 text 内容。"}
}
# 为什么百度不收录? 🤔
a)
确认站点没有 robots.txt 阻拦爬虫;b) 确保页面返回的是200状态码,而不是302/404;c) 内容要有一定原创度和价值,不要全是复制粘贴;d) 给每页加上合理的 meta keywords 和 description;e) Zui后给站点提交 sitemap 给百度站长平台,让它主动来抓取。说白了就是这些细节没Zuo好,就会被百度忽略啦。哈哈,你懂的~
Last but not least —— 小技巧 & 心得体会
- 装饰器写法太香了一定记得在 tsconfig.json 开启 `"experimentalDecorators": true` 和 `"emitDecoratorMetadata": true` 哦,不然报错就烦死你了。 - 用 VS Code 的插件 “NestJS Snippets” Neng省不少敲键盘时间,你懂的,我常常懒得手敲那堆重复代码。 - 项目里Zui好把公共 DTO、Pipe、Guard 抽离出来这样以后
功Neng时不用翻来覆去找文件路径。 - 想让前后端共用类型?直接把 `interface` 放到 `libs/shared` 文件夹,用 Yarn workspace 或者 NPM workspaces 管理,多人协作geng顺畅。" Ciao~ 咱们今天从零开始装配了 Node 环境、Nest CLI、Prisma 数据层,再撸了用户和 AI 两大业务模块。整个流程像搭乐高一样,一块块拼起来不需要一次性写完所有代码,只要一步一步走,就Neng稳稳跑通。以后想加 JWT 权限、WebSocket 实时推送,只要在对应模块里再添几个文件即可,真香!
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback