博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nodejs 英雄管理系统
阅读量:2054 次
发布时间:2019-04-28

本文共 4733 字,大约阅读时间需要 15 分钟。

英雄管理系统

文件结构如下:

|----heroManage

​ |----node_modules --> 这是用命令自动生成的 npm i express body-parser multer

​ |----uploads --> 这是用代码自动生成的 var upload = multer({ dest: “uploads/” });

​ |----utils --> 这是复制的工具包

​ |----www --> 这是主要的前端代码包

​ |----app.js --> 这是主要的后端代码文件

​ |----package.json --> 这是用命令自动生成的 npm init -y

​ |----package-lock.json --> 这是和上面的node_modules文件夹一起生成的

再附带一张小图片

在这里插入图片描述

这是后端主要逻辑代码:

// 导包const express = require("express");const bodyParser = require("body-parser");const path = require("path");const multer = require("multer");// 用包,帮我们创建一个uploads文件夹var upload = multer({
dest: "uploads/" });// 导入我们自己写的模块,需要拼接一个绝对路径const db = require(path.join(__dirname, "utils", "db.js"));// 创建服务器const app = express();// 例如,通过如下代码就可以将 www 目录下的图片、CSS 文件、JavaScript 文件对外开放访问了:app.use(express.static("www"));// 如果要使用多个静态资源目录,请多次调用 express.static 中间件函数:app.use(express.static("uploads"));// parse application/x-www-form-urlencodedapp.use(bodyParser.urlencoded({
extended: false }));// 写接口(注册路由)// 1. 用户登录app.post("/login", (req, res) => {
// 1.1 接收用户传递过来的用户名和密码 let {
username, password } = req.body; // 对象解构语法 // 1.2 判断账号和密码是否正确 // 实际开放的时候判断流程:把账号和密码发到数据库中去验证 if (username == "admin" && password == "123456") {
res.send({
code: 200, msg: "登录成功!", }); } else {
res.send({
code: 400, msg: "账号或者密码不正确!", }); }});// 2. 获取所有英雄app.get("/getAllHero", (req, res) => {
// 调用我们自己写的db.js模块,调用它里面的方法获取所有的英雄 let list = db.getHeros(); res.send({
code: 200, data: list, });});// 3. 新增英雄app.post("/add", upload.single("icon"), (req, res) => {
// req.file is the `avatar` file // 传过来的文件,参数名用icon // req.body will hold the text fields, if there were any // 一起传过来的文本保存在req.body中 console.log(req.file); // 文件的参数就在这里 { filename: 'ee7c4b63db36fd8acd85f24eaf55eb6d', } console.log(req.body); // 文本参数就在这里 { name: '千里', skill: '飘起来' } // 用变量保存一下 let {
name, skill } = req.body; let icon = req.file.filename; // 把这个新增的英雄的数据,用我们自己写的插件db.js 存起来 let result = db.addHero({
name, skill, icon: "http://127.0.0.1:4399/" + icon, }); // 判断 if (result == true) {
res.send({
code: 200, msg: "新增成功", }); } else {
res.send({
code: 400, msg: "新增失败", }); }});// 4. 删除英雄app.get("/delete", (req, res) => {
// 接收前端传递过来的要删除的英雄的id let {
id } = req.query; // console.log(id); // 用我们自己写的db.js这个文件去删除 英雄 let result = db.deleteHeroById(id); // 判断 if (result == true) {
res.send({
code: 200, msg: "删除成功!", }); } else {
res.send({
code: 400, msg: "删除失败!", }); }});// 5. 根据id获取英雄(编辑的第一步)app.get("/getHeroById", (req, res) => {
// 获取前端传递过来需要编辑的这个英雄的id let {
id } = req.query; // 解构赋值 // 用db.js来获取id下的英雄信息 let result = db.getHeroById(id); if (result != false) {
res.send({
code: 200, mag: "获取成功", data: result, }); } else {
res.send({
code: 400, mag: "获取失败", }); } res.send("根据id获取英雄");});// 6. 编辑英雄app.post("/edit", upload.single("icon"), (req, res) => {
// 用模块multer来接收用户编辑之后的(英雄名,英雄技能,,英雄头像) // 文件(英雄头像)req.file.filename; // 非文件参数 req.body // console.log(req.file.filename); // 387d6f59e71fd30002b039dd05f6062c // console.log(req.body); // { id: '3', name: '千里里', skill: '飘起来了' } // 存进变量里 let icon = req.file.filename; let {
id, name, skill } = req.body; // 用db.js来处理 let result = db.editHero({
id, name, skill, icon: "http://127.0.0.1:4399/" + icon, }); if (result == true) {
res.send({
code: 200, msg: "修改成功!", }); } else {
res.send({
code: 400, msg: "修改失败!", }); } res.send("编辑英雄");});// 开启服务器app.listen(4399, () => {
console.log("服务器开启了...");});

这是前端登录页代码:

      
Bootstrap 101 Template

这是前端的主页代码:

      
Bootstrap 101 Template
英雄列表
当前位置:首页
头像 姓名 技能 操作
盖伦 躲草丛
盖伦 躲草丛

转载地址:http://scclf.baihongyu.com/

你可能感兴趣的文章
Leetcode C++《热题 Hot 100-27》17.电话号码的字母组合
查看>>
Leetcode C++《热题 Hot 100-28》19.删除链表的倒数第N个节点
查看>>
Leetcode C++《热题 Hot 100-29》22.括号生成
查看>>
Leetcode C++《热题 Hot 100-30》31.下一个排列
查看>>
Leetcode C++《热题 Hot 100-40》64.最小路径和
查看>>
Leetcode C++《热题 Hot 100-41》75.颜色分类
查看>>
Leetcode C++《热题 Hot 100-42》78.子集
查看>>
Leetcode C++《热题 Hot 100-43》94.二叉树的中序遍历
查看>>
Leetcode C++ 《第175场周赛-1 》5332.检查整数及其两倍数是否存在
查看>>
Leetcode C++ 《第175场周赛-2 》5333.制造字母异位词的最小步骤数
查看>>
Leetcode C++ 《第175场周赛-3》1348. 推文计数
查看>>
Leetcode C++《热题 Hot 100-44》102.二叉树的层次遍历
查看>>
Leetcode C++《热题 Hot 100-45》338.比特位计数
查看>>
读书摘要系列之《kubernetes权威指南·第四版》第一章:kubernetes入门
查看>>
Leetcode C++《热题 Hot 100-46》739.每日温度
查看>>
Leetcode C++《热题 Hot 100-47》236.二叉树的最近公共祖先
查看>>
Leetcode C++《热题 Hot 100-48》406.根据身高重建队列
查看>>
《kubernetes权威指南·第四版》第二章:kubernetes安装配置指南
查看>>
Leetcode C++《热题 Hot 100-49》399.除法求值
查看>>
Leetcode C++《热题 Hot 100-51》152. 乘积最大子序列
查看>>