node后台管理系统

本文介绍了使用Node.js作为后台语言,MongoDB为数据库,结合Vue.js构建后台管理系统的流程。涉及内容包括Node.js的特点、MongoDB的操作、mongoose库的使用、ElementUI组件库的应用以及跨域问题的解决。详细阐述了注册和登录流程,以及如何通过crypto模块进行数据加密。同时,讨论了登录验证和权限控制,包括Token的生成和解密,以及上线后的跨域策略。
摘要由CSDN通过智能技术生成

16-node(5.11)

nodejs

基于js的后台语言

基于谷歌浏览器这js解析器v8的一个javascript运行环境

node特点

  1. 单线程
  2. 非阻塞式io
  3. 事件驱动

mongodb

操作

mongodb 数据库 集合(collection) 文档document
mysql 数据库 字段

可视化:robo3t

增:

db.集合名.insert({"key":val});
db.集合名.save({"key":val});
db.集合名.insert([{"key":val},{},{}...]);//一次多条数据插入

查询:

db.集合名.find();//默认查询所有
db.集合名.find({"key":val});//条件查询
db.集合名.find({"key":{$运算符:条件});//
db.集合名.find({"key":{$gte:13});//大于等于13

运算符查询:

大于:$gt	小于:$lt	大于等于:$gte	小于等于:$lte	不等于:$ne

分页

**skip()**用来指定跳过多条数据

**limit()**查询出指定数量的内容

改:

//默认修改一条数据
db.集合名.update({要修改的内容"key":val},{$set:{你要修改的数据"key":newval})

//想要修改多条数据
db.集合名.update({要修改的内容"key":val},{$set:{你要修改的数据"key":newval},{multi:true})

删:

//默认删除所有匹配数据
db.集合名.remove({数据})

//只想删除一条
db.集合名.remove({数据},{justOne:true})

使用node连接mongodb

1.下载:npm install --save mongoose

2.封装:

  • 新建db/index.js

  • 引用,配置数据库连接信息

  • 开始连接并且监听连接是否成功

3.设置数据库schema

4.设置集合

//集合的设置
    // let colvip=mongoose.model("集合",对象)
    //操作的是vip集合,但是不会添加到vip上面,而是会生成一个vips的新集合;
    //解决???创建时创建带有s的集合。eg:直接操作vips

let colvip = mongoose.model("tests", userSchema)

mongoose操作mongodb

一、新增

1.新增内容

// 1.设置要新增的哪些内容
let newvip = new colvip({
   
    name: "newname",
    age: "newage"
 })

2.开始新增

//2.开始新增
newvip.save().then((ok) => {
   
	console.log(ok)
})
const Router = require("express");
let express = require("express");
let router = express.Router();

// 引用
let colvip = require("../db/index.js");
router.post("/insert", (req, res) => {
   
    //给数据库新增内容
    // 1.设置要新增的哪些内容
    let newvip = new colvip({
   
            name: "newname",
            age: "newage"
        })
        //2.开始新增
    newvip.save().then((ok) => {
   
        console.log(ok)
    })
    res.send({
    msg: "insert" })
});
//暴露
module.exports = router;

二、查询

let express = require("express")
let router = express.Router()

// 引用
let colvip = require("../db/index.js")
router.get("/find", (req, res) => {
   
        //colvip调用
        colvip.find().then((ok) => {
   
            console.log(ok)
            res.send({
    msg: "find接口", data: ok })
        })
    })
    //暴露
module.exports = router

//查询指定内容
colvip.find({
    name: "newname" }).then((ok) => {
   
    console.log(ok)
    res.send({
    msg: "find接口", data: ok })
});

结合vue

<script>
import {
   getlink} from "@/api/getapi.js"
export default {
   
  data(){
   
    return{
   
      arr:[]
    }
  },
  mounted(){
   
    getlink("/api/find/find").then((ok)=>{
   
      console.log(ok)
      this.arr=ok.data.data
    })
  }
}
</script>

跨域

module.exports = {
   
  devServer: {
   
   open: true,
     proxy: {
   
       '/api': {
   
         target: 'http://localhost:3000/', //对应自己的接口
         changeOrigin: true,
         ws: true,
         pathRewrite: {
   
           '^/api': ''
         }
       }
    }
  }
}

elementui (后台管理插件)

1.下载:npm i element-ui -S

<template>
  <div class="hello">
   <h3 v-for="(v,i) in arr" :key="i">{
   {
   v.name}}----{
   {
   v.age}}</h3>

    <!-- ==================element=========== -->
       
    <el-button type="danger">危险按钮</el-button>

    <el-table
    :data="arr"	==arr为自己的数据匹配==
    stripe
    style="width: 100%">
    //========一列==========
    <el-table-column
      prop="name"	==需要传参==
      label="姓名">	==表头==
    </el-table-column>
    //=========一列==============
     <el-table-column
      prop="age"	==需要传参==
      label="年龄">	==表头==
    </el-table-column>
  </el-table>

  </div>
</template>

<script>
import {
   getlink} from "@/api/getapi.js"
export default {
   
  data(){
   
    return{
   
      arr:[],
    }
  },
  mounted(){
   
    getlink("/api/find/find").then((ok)=>{
   
      console.log(ok)
      this.arr=ok.data.data
    })
  }
}

</script>
原型图工具:墨刀/墨客

node后台管理系统流程

  1. 创建vue项目,搭建页面,登录注册首页

  2. 创建路由页面,技术栈:vue-cli、 vue-router、路由懒加载、组件页面化、elemuientui、代理跨域

  3. 清空脚手架

  4. 先完成登录和注册(页面)

注册流程

前台:

1.得到输入框的值

2.把输入框的值按照后台给的接口要求传递过去

3.开始进行传递(前台发送get数据)(代理跨域)

reg(){
   
    // 1.得到输入框的值v-model
    // 2.发出去
    getlink("http://localhost:3000/zhuce/zhuce",	{
   uname:this.inputuser,upwd:this.inputupwd}).then(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值