Contents

前后端分离小demo

Contents

目的:前端请求后端,插入数据到数据库。 新建两个文件夹,vueServer和vueClient

vueServer

服务端用express搭建服务器,mongoose数据库存储 APP.js文件很简单

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 let express = require('express') 
 let app = express() 
 let router = require('./routes/router') 
 let db = require('./models/db.js') 
 let cors = require('cors') 
 //静态资源管理
  app.use(express.static("./public")) 
  // 设置跨域(*) 
  app.use(cors()) 
  // 设置路由 
  app.get('/users', router.doRegist) 
  // 监听3000端口 
  app.listen(3000); 

router.js文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
let Users = require('./../models/users') 
// 路由逻辑 //注册业务 
exports.doRegist = function (req, res, next) { 
   //接受前台数据 
   var queryData = req.query
    var username = queryData.username 
    var password = queryData.password 
    // 查询是否有重复 
    Users "username": username 
    }, 
    function (err, doc) { 
       if (err) { 
           console.log(err); return; 
           } if (doc.length != 0) { 
               res.send("用户已经存在!"
               ); } 
               //写入数据库 else { 
                   Users.create({
                    "username": username, "password": password 
                    }, function (err, doc) { 
                       if (err) { console.log(err); return; 
                           } res.send("插入数据库成功!"); 
                           }) 
                           } 
                           }) 
                       }

数据库文件 db.js

1
2
3
4
5
6
7
let mongoose = require('mongoose') 
// 连接数据库 mongoose.connect('mongodb://localhost/users') 
let db = mongoose.connection 
// 监听连接状态 db.once('open', function () { 
   console.log('数据库连接成功!') 
   }) 
   module.exports = db 

users.js

1
2
3
4
5
6
7
8
9
let mongoose = require('mongoose') 
// 定义schema结构
 let userSchema = new mongoose.Schema({
  "username": String, "password": String 
  }) 
  // 利用schema生成模型
   let Users = mongoose.model("Users", userSchema) 
   // 暴露出去 
   module.exports = Users 

vueClient

直接用脚手架生成,用axios发送请求

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
methods:{ doRegist() { 
	// 获取用户名 
	let username = this.$refs.username.value 
	let password = this.$refs.password.value 
	if(username === "" || password === "") {
	 alert("用户名或密码不能为空!") 
	 } else { 
	 	// 向后端发送请求,存入数据库 
	 	axios.get("http://192.168.43.54:3000/users", { 
	 		params: { "username": username, "password": password } 
	 		}).then((response) => { 
	 			if(response.status === "200") {
	 			 console.log("注册成功!") } 
	 			 }).catch((error) => { 
	 			 	console.log(error)
	 			 	 })
 			 	  } 
			 	  } 
		 	  }
	 	   }

最后localhost:8080能成功请求localhost:3000,并将数据插入到数据库。