当前位置: 首页 > article >正文

vue前端+nodejs后端通信-简单demo

本文记录vue前端+nodejs后端通讯最简单的方法,供广大网友最快速进入全栈开发。
技术架构
前端 vue + axios
后端 nodejs + express

一、前端部分-搭建VUE 项目

vue create Vnode

npm run serve 启动;
具体操作步骤,请自行百度,这里没什么难度昂。

二、后端-node

1、 在vue项目,src同级目录下,创建app.js 文件

在这里插入图片描述

app.js

// 引入express模块
const express=require("express");

// 引入bodyParser模块
const bodyParser=require("body-parser");

// 创建web服务器
var server=express();
server.listen(3001);

// 托管静态资源到public
server.use(express.static('public'));

// 配置post请求第三方中间件
server.use(bodyParser.urlencoded({ extended:false })) //formData格式解析
server.use(bodyParser.json()) //json解析


// 引入路由模块
const login=require("./src/router/login.routers");//用户登录
const user = require("./src/router/user.routers")
server.use('/login',login);//用户登录
server.use('/user',user);//用户信息

server.listen(82, () => {
    console.log('服务器启动:'+'http://127.0.0.1')
  })

 

2、 在routers文件夹下新建login.routers.js,里面含有各路由信息

// 引入express模块
const express=require('express');
// 创建一个空的路由对象
const router=express.Router();
// 引入连接池模块
const pool=require('./pool');
//post请求是req.body,get请求是req.query
 router.post('/',(req,res)=>{
    var name=req.body.name;
    // console.log(name);
    var pwd=req.body.pwd;
    // console.log(pwd);
    if(!name){
        res.send("您输入的用户名不存在");
        return;
    }
    if(!pwd){
        res.send("您输入的密码不存在");
        return;
    }
    pool.query('select * from user where  name=? and pwd=?',[name,pwd],(err,result)=>{
        if(err) throw err;
         console.log(result);
         console.log(result.length);

         if(result.length>0){
            res.send({status:1,rel:result,msg:'登录成功'});
        }else{
          res.send({status:0,msg:"用户名或密码不正确"});
        }
     })       
 })
 module.exports=router;

3、在routers文件夹下新建user.routers.js,获取用户信息

var express = require('express');
var router = express.Router();
router.get('/getInfo', function (req, res) {
	var user = {
		name: '李四',
		age: 30,
		sex: 'woman',
	};
	var response = { status: 1, data: user };
	res.send(JSON.stringify(response));
});

module.exports = rouçter;

4、.同级目录下新建pool.js(文件名自定义)

//创建连接池
const mysql=require('mysql');
var pool=mysql.createPool({
    host:'127.0.0.1',
    port:'3306', // 数据库端口号
    user:'root', // 数据库用户名
    password:'root', // 数据库密码
    database:'mydatabase', // 数据库名称
    connectionLimit:20 // 最大连接活跃数
});
module.exports=pool;

5、 vue中使用接口

安装axios

npm install axios --save-dev  

main.js

//讲axios绑定到vue原型上
import axios from 'axios'
Vue.prototype.$axios = axios

App.vue文件(具体业务具体写,暂时放这里,测试数据通信)

created() {
	this.$axios.get('/api/users/getInfo').then((res) => {
		console.log(res, 'res-----');// 
	});
},

请求地址后会出现跨域的问题可在前端或者node服务端处理

前端配置代理
在vue根目录下新建vue.config.js文件

module.exports = {
	devServer: {
		proxy: {
			'/api': {
				target: 'http://127.0.0.1:3001', //node.js服务器运行的地址
				ws: true,
				changeOrigin: true,
				pathRewrite: {
					'^/api': 'http://127.0.0.1:3001', //路径重写
				},
			},
		},
	},
};

在node服务端的app.js中设置域名可访问

// 采用设置所有均可访问的方法解决跨域问题
server.all('*', function(req, res, next) {
  // 设置允许跨域的域名,*代表允许任意域名跨域
  res.header('Access-Control-Allow-Origin', '*');
  // 允许的header类型
  res.header('Access-Control-Allow-Headers', 'content-type');
  // 跨域允许的请求方式
  res.header('Access-Control-Allow-Methods', 'DELETE,PUT,POST,GET,OPTIONS');
  if (req.method.toLowerCase() === 'options') {
    res.send(200); // 让options尝试请求快速结束
  } else {
    next();
  }
});

到此vue中即可访问node写的接口了。
终端,启动服务:node app.js
终端,启动前端: npm run serve
如果过程报错,缺少什么依赖,依次安装即可;
遇到问题,一步步解决,别气馁。

源代码地址:github代码
初写node,一起学习!!

参考文章地址


http://www.kler.cn/a/228028.html

相关文章:

  • 详细解释java当中的所有知识点(前言及数据类型及变量)(第一部分)
  • 【Redis】 String 类型的介绍和常用命令
  • python学opencv|读取图像(四十九)原理探究:使用cv2.bitwise()系列函数实现图像按位运算
  • 在线课堂小程序设计与实现(LW+源码+讲解)
  • C语言-运算符
  • 创作三载·福启新章2025
  • 网络安全面试题收集
  • 线程池,定时器以及阻塞队列(生产者/消费者模型)
  • 春节技术特辑:一体化运维管理系统,让节日更放心
  • unordered_map和unordered_set
  • Spring面试大全-IOC容器03
  • deb 打包
  • 【计算机网络】Socket的SO_TIMEOUT与连接超时时间
  • 套路化编程 C# winform 自适应缩放布局
  • 【MATLAB源码-第136期】基于matlab的变色龙群优化算法CSA)无人机三维路径规划,输出做短路径图和适应度曲线
  • 乐意购项目前端开发 #7
  • 机器人抓取中的混淆概念
  • 回归预测 | Matlab基于OOA-LSSVM鱼鹰算法优化最小二乘支持向量机的数据多输入单输出回归预测
  • 三维可视化助力船舶制造:大数据处理、实时协作更高效!
  • 日语语法小结
  • 机器视觉系统设计:视觉系统中的成像基准
  • 如何在Shopee平台上进行手机类目选品?
  • Docker Dockerfile
  • ArcGIS Pro字段编号相关代码
  • Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(六)
  • django线上教育学习平台大数据分析系统python