欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > NodeJS服务器 + Vue3框架 从搭建服务器 定义接口 到请求数据 一篇文章全明白了

NodeJS服务器 + Vue3框架 从搭建服务器 定义接口 到请求数据 一篇文章全明白了

2024/11/19 9:09:08 来源:https://blog.csdn.net/weixin_43483590/article/details/143864595  浏览:    关键词:NodeJS服务器 + Vue3框架 从搭建服务器 定义接口 到请求数据 一篇文章全明白了

        这篇文章主要是前端开发中常用的nodejs服务器来做全栈项目的,  如果你明白nodejs是怎么回事, vue也知道是怎么回事, 但就是不知道如何把他们联系起来, 看了这篇文章你就全明白了.

        Node.js和Vue.js可以一起用于全栈开发,即使用Node.js作为后端服务器,Vue.js作为前端框架。Node.js可以处理服务器端的逻辑和数据存储,而Vue.js可以负责前端页面的展示和交互。这种全栈开发方式可以提高开发效率,并且可以实现前后端的快速协作.

        如果有发现问题,请评论区留言指正,感谢阅读!!!

目录

        一 环境

        二 新建项目

        三 搭建服务器

1. node环境安装

2.  express创建web服务器

3 运行服务 

四 客户端接收数据 

4.1 安装axios

4.2  使用

4.3 组件处理返回数据

4.4 html部分 


        一 环境

博主用的电脑环境

  • 系统: 是win10系统    
  • nodejs环境正常    
  • vue环境也正常的

        二 新建项目

博主用的是之前的一个项目, 所以这里小伙伴也就是新建一个vue3 项目, 这个应该已经很熟悉了

//命令行工具运行 新建vue项目
npm init vue@latest

        三 搭建服务器

1. node环境安装

博主电脑已经有node运行环境了, 没有安装的可参考这个

2.  express创建web服务器

这里为了方便, 我们使用express框架来安装服务器

2.1 项目初始化  找到项目根路径 输入指令 npm init 

npm init

2.2 安装依赖

npm install express --save

2.3 创建一个服务器

创建服务器不难,只需要几行代码就搞定了

// 使用express搭建服务器
const express = require('express');  
const app = express();app.get('/api/hello', (req, res) => {res.send('Hello, World!');
});app.listen(3000, () => {console.log('Server is running on port 3000');
});
3 运行服务 

找到创建服务器的文件下的路径 命令行 输入运行指令 启动服务

node server.js

可以看到运行服务后 控制台打印出了 服务器已在3000端口运行, 我们通过get请求看到浏览器也出现了我们希望的 hello world.

四 客户端接收数据 

现在我们已经成功定义了一个接口,并且经过测试, 可以正常拿到数据并显示的, 那么我们如何在vue中显示呢?

4.1 安装axios

axios是一个基于Promise的HTTP客户端,可以用于发送HTTP请求,支持node端和浏览器端 同样的API,node和浏览器全支持. 

npm install axios
4.2  使用

安装好之后就可以在vue组件中使用了, 首先引入axios 然后使用axios请求接口数据, 这里接口改成3001了注意下, 后面会说为什么改.

  import axios from 'axios';import {ref } from 'vue';const message= ref('')const getchData =() => {axios.get('http://localhost:3001/api/hello').then(response => {// 处理接口返回的数据message.value = response.data }}).catch(error => {// 处理错误});}

这里向服务器发送请求的时候, 可能会报错  需要注意一下,  这个错误是网络没有连接到服务器 ERR_CONNECTION_REFUSED,这个错误大多是服务接口看是否些错误 或者服务没有启动.

后来是服务器启动的页面被我关掉了. 

 

 还有一个错误是 No ‘Access-Control-Allow-Origin’ header is present on the requested resource   

当浏览器尝试从不同于其源(域、协议或端口)的服务器加载资源时,会触发同源策略。然而,有时我们确实需要从不同的源加载资源,这时就需要使用跨源资源共享(CORS)机制。如果在请求跨域资源时,服务器没有返回Access-Control-Allow-Origin这个HTTP响应头,浏览器就会阻止这个请求,并抛出一个错误

这个错误解决办法就是 项目安装cors就可以了

npm install cors --save

 

 服务器页面加入这两句代码

const cors = require('cors')
app.use(cors());  //使用cors中间件允许所有跨域请求

如果不生效的话 项目重新执行下  npm install  重启服务就可以

4.3 组件处理返回数据

这里我们把返回的对象打印出来 可以看到数据 把data值赋值给message显示到页面上

  import axios from 'axios';import {ref } from 'vue';const message= ref('')const error = ref('');const getchData =() => {axios.get('http://localhost:3001/api/hello').then(response => {// 处理接口返回的数据if(response.status == 200){message.value = response.dataconsole.log(response)}}).catch(error => {// 处理错误error.value = error.message;});}

4.4 html部分 
<button @click="getchData">获取数据</button>
<span>{{message}} </span>

         到这里我们已经完成了从新建一个项目 到 搭建一个服务器 定义一个接口 向服务器请求数据 处理请求数据 显示到组件页面.

相关阅读

Express基于Node.js基础知识【2】全面总结 推荐-CSDN博客

MySQL 预处理、如何在 [Node.js] 中使用 MySQL?_node 使用mysql-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com