Vue-Element-Admin项目学习笔记(7)用Node.js写一个简单后端接口

前情回顾:

vue-element-admin项目学习笔记(1)安装、配置、启动项目
vue-element-admin项目学习笔记(2)main.js
文件分析
vue-element-admin项目学习笔记(3)路由分析一:静态路由
vue-element-admin项目学习笔记(4)路由分析二:动态路由及permission.js
vue-element-admin项目学习笔记(5)路由分析三:动态路由匹配逻辑
Vue-Element-Admin项目学习笔记(6)Vuex状态管理

大家都知道,我们使用Vue做的很多项目,都是前后端分离的架构。

但是很多小伙伴并没有后端开发经验或者基础。

为了能让Vue-Element-Admin这个项目联调顺利进行,今天发一篇简单利用node.js实现后端接口的文档,希望能够帮到大家。

1、安装环境

前提是,你的计算机上安装了node.js,终端(命令行)执行命令node -v如果能看到版本号,就是安装了。否则,先去安装。

然后,在任意目录下,新建目录,如:test

然后终端(命令行)进入目录,执行:

npm install express --save

这一步是安装所需要的模块。

在这里插入图片描述
执行完,可见test文件夹中,多了如上文件和目录,安装成功。

2、新建入口文件

test文件夹中,新建一个文件:index.js

该文件,就是我们的核心文件了。

3、实现代码

将下列代码复制、粘贴进刚刚我们新建的index.js文件中。

具体接口,按自己的需求调整就行。

注释写的很详细。

// 导入依赖包
const express = require('express');
// 导入express 赋给 app变量 后面使用
const app = express();
// 导入依赖包,用于将请求参数转化为json
const parser = require('body-parser');
app.use(parser.json());

// 定义一个返回json 
const userInfo = {
	code: 200,
	msg: 'success',
	data: {
		name:'admin',
		avatar:'http://img.duoziwang.com/2021/04/07242259901688.jpg',
		introduction:'我是一个码农啊',
		roles:['admin']
	}
};

// 为app添加中间件处理跨域请求 
app.use(function (req, res, next) {
	res.header('Access-Control-Allow-Origin', '*');
	res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
	res.header('Access-Control-Allow-Headers', 'X-Requested-With');
	res.header('Access-Control-Allow-Headers', 'Content-Type');
	next();
});
 

// 实现了一个post监听的接口,接口路径 /api/user/login
//req 请求来的参数
//res  用于响应
app.post('/api/user/login', (req, res) => { 
	console.log(req.query);
	console.log(req.body); 
	if (req.body['username']==='admin' && req.body['password']==='123456') {
		res.send({ code: 200, msg: 'success', data: { token: 'fangdong-test-token' }});
	} else {
		res.send({ code: 201, msg: '用户名或密码不正确'});
	}
});


// 实现了一个post监听的接口,接口路径 /api/user/logout
//req 请求来的参数
//res  用于响应
app.post('/api/user/logout', (req, res) => {
	console.log('----------------------------------------');	
	console.log('POST:->  /api/user/logout');	
	console.log(req.query);
	console.log(req.body); 
	console.log('----------------------------------------'); 
	res.send({ code: 200, msg: 'logout success'});
 
});


// 实现了一个监听的接口,接口路径 /api/user/info
//req 请求来的参数
//res  用于响应
app.get('/api/user/info', (req, res) => {  
	console.log('token校验成功!')
	res.send(userInfo); 
});


// 监听9900端口
app.listen(9900, () => {
	console.log('服务器运行在9900');
});

4、运行接口程序

test目录下执行:node index.js
在这里插入图片描述
此时,可以通过POSTMAN等方式访问接口了
也可以自己写一写业务逻辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/30079.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

黑苹果 或者 Mac 因 mds资源占用过高,导致频繁死机

开机后不久,风扇狂转,温度升高,然后死机,关机。 1. 使用 “Apple 诊断”测试 Mac 先看看硬件层面是否有问题。 使用“Apple 诊断”测试 Mac。 这款 Mac 的处理器是 Intel ,开启 Mac,然后在 Mac 启动时立…

状态机编程实例-嵌套switch-case法

嵌入式软件开发中,状态机编程是一个比较实用的代码实现方式,特别适用于事件驱动的系统。 本篇,以一个炸弹拆除的小游戏为例,介绍状态机编程的思路。 C/C语言实现状态机编程的方式有很多,本篇先来介绍最简单最容易理解…

KW 新闻 | KaiwuDB 亮相数字中国并发布离散制造场景解决方案

4月26-30日,以“加快数字中国建设,推进中国式现代化”为主题的第六届数字中国建设峰会在福州市圆满召开。KaiwuDB 受邀亮相大会参展并发布“离散制造场景解决方案”,旨在以数字化方案驱动生产方式、治理方式变革,推进离散制造业物…

45道SQL题目陆续更新

文章目录 学习视频配置环境第一天内连接 外连接sql执行顺序 第二天group by 的用法 第三天第四天order bycase when窗口函数 第五天第六天第七天limit第八天 45、查询下月过生日的学生信息 学习视频 学习视频 配置环境 四张表 配置四张表的sql语句 #创建发据库 create dat…

TOGAF10®标准中文版--(阶段A — 架构愿景)方法

3.5.1 概述 阶段 A 从收到发起组织向架构组织发出的架构工作请求开始。 在TOGAF 标准 —EA能力和治理中讨论了确保公司管理层的适当认可和确认,以及直线管理层的支持和承诺所涉及的问题。 A阶段还定义了架构工作的范围内和范围外的内容以及必须处理的约束条件。在…

浅析 xml 数据格式文件

浅析 xml 数据格式文件 xml ( Extensible Markup Language ) 全称 -> 可拓展的标记语言; xml文件的主要用途:xml文件主要用于数据的 传输 和 存储,并不是展示; xml标签与html的区别:节点的标签使用方式和 html 十分…

linuxOPS系统服务_linux高级命令

find命令 find 路径 [选项 选项的值] … 选项作用-name根据文件的名称进行-type按文件类型进行搜索,f代表普通文件,d代表文件夹 find命令查找文件 示例1 查找一个文件 案例1 ,在linux整个系统中查找 test.txt文件 find / -name test.txt -type f案例…

算法刷题-字符串-重复的子字符串

KMP算法还能干这个 459.重复的子字符串 力扣题目链接 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。 示例 1: 输入: “abab” 输出: True 解释: 可由子字符串 “ab” 重复两…

Ubuntu下载速度过慢解决

今天用Ubuntu下载Roberta文件到本地,速度特别慢,Ubuntu 系统自带的源文件,都是国外的源网址,在国内下载安装升级源或者依赖的时候,都比较慢,更换国内的源地址,轻松搞定此问题。 目录 一、备份…

ChatGPT的未来发展

文章目录 1.什么是ChatGPT2.ChatGPT的基础技术3.ChatGPT工作原理4.ChatGPT应用场景5.ChatGPT局限性6.ChatGPT的未来发展 ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入&#xff…

一键部署通义千问预体验丨阿里云云原生 5 月动态

云原生月度动态 云原生是企业数字创新的最短路径。 《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。 本栏目每月更新。 01 趋势热点 🥇 Apache RocketMQ 入选可信开…

哨兵3号(Sentinel 3)卫星数据处理

李国春 本文介绍使用RSD处理欧空局哨兵3号(Sentinel 3)卫星数据的具体方法。 气象数据多用NetCDF格式交换和存储,气象卫星数据也是如此。气象业内认为HDF5也是NetCDF的一部分,虽然文件扩展名使用的是.nc,但是实际上就…

【AntDB数据库】AntDB数据库告警管理

告警历史 功能概述 数据库系统的主机、单节点集群的被监测指标达到告警阀值时,AMOPS就会产生告警并展示在告警分类页面上。 告警分类页面提供告警搜索查看功能,用户可以指定监控项、集群、事件级别、时间范围和告警对象对告警进行搜索。 查询的告警数…

【MySQL数据库基础】

MySQL数据库基础 1. 数据库的操作1.1 显示当前的数据库1.2 创建数据库1.3 使用数据库1.4 删除数据库 2. 常用数据类型2.1整数(xxxint)2.2日期时间类型2.3字符串型 3. 表的操作3.1 查看表结构3.2 创建表3.3 删除表 1. 数据库的操作 1.1 显示当前的数据库…

React学习之路-目录结构

目录结构 node_modules — 存放项目依赖包 public — 存放网站的静态资源文件 favicon.icon — 网站偏爱图标index.html — 主页面(重要)logo192.png — logo图logo512 — logo图manifest.json — 应用加壳的配置文件robots.txt — 爬…

Elasticsearch:实用 BM25 - 第 1 部分:分片如何影响 Elasticsearch 中的相关性评分

作者:Shane Connelly 背景 在 Elasticsearch 5.0 中,我们切换到 Okapi BM25 作为我们的默认相似度算法,这是用于对与查询相关的结果进行评分的算法。 在本博客中,我不会过多地介绍 BM25 与替代措施,但如果你想了解 B…

【备战秋招】每日一题:4月23日美团春招第一题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第一题-申请奖学金 在线评测链接:P1245 题目内容 塔子哥是一个热爱学习的大学生,他的梦想是成为一名优秀的算法竞赛高手。为了实现自己的梦想,他需…

Vue中v-text、v-html、v-on的基本语法(二)

文章目录 前言一、vue中data属性定义对象、数组相关数据二、v-text、v-html指令使用三、v-on基本指令使用(一)四、v-on指令基本使用(二)之在函数中获取vue实例本身this五、v-on指令基本使用(二)之在函数中传递参数六、v-on指令基本使用(二)之简化写法绑定函数和事件定义的两种写…

关于VPN的一些总结和理解

关于VPN的一些总结和理解 前言一、VPN的概述二、VPN的原理2.1 原理概述2.2 虚拟网卡2.3 点对点隧道的建立 三、其他3.1 vpn和vlan的区别?3.2 vpn和web代理的关系? 参考 前言 同样的机缘巧合,最近看了一些关于vpn的内容,总结一下&a…

go+vue自建运维管理平台

文章目录 鲁班运维平台容器管理集群管理namespace管理节点管理工作负载存储管理网络管理配置管理事件中心 kuboard 鲁班运维平台 这个平台和spug很像,感觉就像是spug运维平台的容器版本。 但是如果是容器平台则选择的余地很大,优秀的如kubersphere、kub…