以下是一个简化的 NestJS 电商应用示例,展示了如何使用 NestJS 创建一个基础的电商产品服务。
// products.service.ts
import { Injectable } from '@nestjs/common';
import { Product } from './interfaces/product.interface';
@Injectable()
export class ProductsService {
private readonly products: Product[] = [];
async insertProduct(product: Product): Promise<string> {
const newProduct = {
id: Date.now().toString(), // 使用当前时间戳作为唯一ID
...product,
};
this.products.push(newProduct);
return 'Product added successfully';
}
async getAllProducts(): Promise<Product[]> {
return this.products;
}
async getProduct(productId: string): Promise<Product> {
return this.products.find(product => product.id === productId);
}
// 其他方法,例如 updateProduct 和 deleteProduct
}
// products.controller.ts
import { Controller, Post, Body, Get, Param } from '@nestjs/common';
import { ProductsService } from './products.service';
import { Product } from './interfaces/product.interface';
@Controller('products')
export class ProductsController {
constructor(private readonly productsService: ProductsService) {}
@Post()
async addProduct(@Body() product: Product): Promise<string> {
return this.productsService.insertProduct(product);
}
@Get()
async getAllProducts(): Promise<Product[]> {
return this.productsService.getAllProducts();
}
@Get(':id')
async getProduct(@Param('id') productId: string): Promise<Product> {
return this.productsService.getProduct(productId);
}
}
// product.interface.ts
export interface Product {
id: string;
title: string;
description: string;
price: number;
}
这个示例展示了如何创建一个简单的电商产品服务,包括添加产品、获取所有产品和获取单个产品的功能。这个服务使用内存存储来保存产品信息,在实际应用中,你可能需要使用数据库来存储产品数据。