一个简单的Nest.js+Vue的项目调用

下面我来演示一个简单的示例,展示如何使用 Vue 前端框架调用 Nest.js 后端服务。

首先,我们需要准备两个项目:一个是 Nest.js 的后端服务项目,另一个是 Vue.js 的前端项目。

  1. Nest.js 后端服务项目:

首先创建一个 Nest.js 项目,假设项目名为 nestjs-backend,然后创建一个简单的控制器和服务。

安装 Nest.js CLI(如果没有安装):

npm install -g @nestjs/cli

创建 Nest.js 项目:

nest new nestjs-backend

创建一个 Cats 控制器和 Cats 服务:

nest generate controller cats
nest generate service cats

cats.service.ts 中添加一个简单的方法:

// src/cats/cats.service.ts

import { Injectable } from '@nestjs/common';

@Injectable()
export class CatsService {
  getCats(): string[] {
    return ['Kitty', 'Garfield', 'Tom'];
  }
}

cats.controller.ts 中使用 CatsService:

// src/cats/cats.controller.ts

import { Controller, Get } from '@nestjs/common';
import { CatsService } from './cats.service';

@Controller('cats')
export class CatsController {
  constructor(private readonly catsService: CatsService) {}

  @Get()
  getCats(): string[] {
    return this.catsService.getCats();
  }
}
  1. Vue.js 前端项目:

接下来创建一个 Vue.js 项目,假设项目名为 vue-frontend

安装 Vue CLI(如果没有安装):

npm install -g @vue/cli

创建 Vue.js 项目:

vue create vue-frontend

在 Vue.js 项目中,可以使用 Axios 或者 Fetch API 来调用 Nest.js 后端服务。这里以 Axios 为例。

首先安装 Axios:

npm install axios

然后在 Vue.js 项目中的组件中使用 Axios 来调用 Nest.js 后端服务,例如在 HelloWorld.vue 组件中:

<template>
  <div>
    <h1>Cats List</h1>
    <ul>
      <li v-for="cat in cats" :key="cat">{{ cat }}</li>
    </ul>
  </div>
</template>

<script>
import axios from 'axios';

export default {
  data() {
    return {
      cats: [],
    };
  },
  mounted() {
    axios.get('http://localhost:3000/cats')
      .then(response => {
        this.cats = response.data;
      })
      .catch(error => {
        console.error('Error fetching cats:', error);
      });
  },
};
</script>

<style scoped>
/* 样式 */
</style>

在上面的示例中,我们在 Vue.js 组件中使用 Axios 发起 GET 请求,调用 Nest.js 后端服务的 /cats 路由来获取猫咪列表数据,并在页面中展示。请注意将实际的后端服务地址替换为您的 Nest.js 后端服务地址。

这样就实现了 Vue.js 前端项目调用 Nest.js 后端服务的功能。您可以进一步扩展和优化这个示例,比如添加更多的 API 调用、处理错误、添加 Loading 状态等。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
three.js 是一个用于创建 3D 图形的 JavaScript 库,而 Vue 是一个流行的 JavaScript 框架。将这两个技术结合起来,可以构建出具有交互性和视觉效果的 3D 网页应用程序。 以下是一个使用 three.jsVue.js 开发的简单示例: 1. 首先,安装 three.jsVue.js: ``` npm install three vue ``` 2. 在 Vue 组件中引入 three.js: ```javascript import * as THREE from 'three' ``` 3. 在 Vue 组件中创建场景、相机和渲染器: ```javascript export default { data () { return { scene: null, camera: null, renderer: null } }, mounted () { this.init() }, methods: { init () { // 创建场景 this.scene = new THREE.Scene() // 创建相机 this.camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 0.1, 1000 ) this.camera.position.z = 5 // 创建渲染器 this.renderer = new THREE.WebGLRenderer({ antialias: true }) this.renderer.setSize(window.innerWidth, window.innerHeight) this.renderer.setClearColor('#000000') // 将渲染器添加到页面中 this.$el.appendChild(this.renderer.domElement) // 开始渲染场景 this.renderScene() }, renderScene () { this.renderer.render(this.scene, this.camera) requestAnimationFrame(this.renderScene) } } } ``` 4. 在场景中添加物体: ```javascript const geometry = new THREE.BoxGeometry(1, 1, 1) const material = new THREE.MeshBasicMaterial({ color: '#ffffff' }) const cube = new THREE.Mesh(geometry, material) this.scene.add(cube) ``` 5. 实现交互: ```javascript this.$el.addEventListener('mousemove', event => { const mouseX = (event.clientX / window.innerWidth) * 2 - 1 const mouseY = -(event.clientY / window.innerHeight) * 2 + 1 this.camera.position.x = mouseX * 10 this.camera.position.y = mouseY * 10 this.camera.lookAt(this.scene.position) }) ``` 通过以上步骤,我们就可以创建一个简单的 three.js + Vue.js 项目了。当然,这只是一个示例,您可以根据自己的需求和要求进行更复杂的开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值