Sample of Management System base on Vue/RESTful API
程序员文章站
2022-07-13 18:05:37
...
<template> <div class="login-wrap"> <div class="ms-login"> <div class="ms-title">后台管理系统</div> <el-form :model="param" :rules="rules" ref="login" label-width="0px" class="ms-content"> <el-form-item prop="username"> <el-input v-model="param.username" placeholder="username"> <el-button slot="prepend" icon="el-icon-lx-people"></el-button> </el-input> </el-form-item> <el-form-item prop="password"> <el-input type="password" placeholder="password" v-model="param.password" @keyup.enter.native="submitForm()" > <el-button slot="prepend" icon="el-icon-lx-lock"></el-button> </el-input> </el-form-item> <div class="login-btn"> <el-button type="primary" @click="submitForm()">登录</el-button> </div> <p class="login-tips">Tips : 用户名和密码随便填。</p> </el-form> </div> </div> </template> <script> export default { data: function() { return { param: { username: 'mahesh', password: 'password1', }, rules: { username: [{ required: true, message: '请输入用户名', trigger: 'blur' }], password: [{ required: true, message: '请输入密码', trigger: 'blur' }], }, }; }, methods: { submitForm() { this.$refs.login.validate(valid => { if (valid) { localStorage.setItem('ms_username', this.param.username); this.$axios.get("login/"+this.param.username+"/"+this.param.password, { params:{ name: this.param.username, password: this.param.password } }).then(response =>{ console.log("Id:" , this.param.username) console.log("response:", response)//服务端返回数据 console.log("data:" , response.data) console.log("status:", response.status) if (response.status == 200 && response.data['name'] == this.param.username) { this.$message.success('登录成功'); this.$router.push('/'); } else { this.$message.error('请输入账号和密码'); } }).catch(error => { console.log("Error", error); this.$message.error(error.message); }); } else { this.$message.error('请输入账号和密码'); console.log('error submit!!'); return false; } }); }, }, }; </script> <style scoped> .login-wrap { position: relative; width: 100%; height: 100%; background-image: url(../../assets/img/login-bg.jpg); background-size: 100%; } .ms-title { width: 100%; line-height: 50px; text-align: center; font-size: 20px; color: #fff; border-bottom: 1px solid #ddd; } .ms-login { position: absolute; left: 50%; top: 50%; width: 350px; margin: -190px 0 0 -175px; border-radius: 5px; background: rgba(255, 255, 255, 0.3); overflow: hidden; } .ms-content { padding: 30px 30px; } .login-btn { text-align: center; } .login-btn button { width: 100%; height: 36px; margin-bottom: 10px; } .login-tips { font-size: 12px; line-height: 30px; color: #fff; } </style>
//Ref Link:https://www.runoob.com/nodejs/nodejs-restful-api.html var express = require('express'); var app = express(); var fs = require("fs"); //---------------------------------------------------------------- app.get('/listUsers', function (req, res) { fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { console.log("--listUsers--\n" , data ); res.end( data ); }); }) //---------------------------------------------------------------- //添加的新用户数据 var user = { "user4" : { "name" : "mohit", "password" : "password4", "profession" : "teacher", "id": 4 } } app.get('/addUser', function (req, res) { // 读取已存在的数据 fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); data["user4"] = user["user4"]; console.log("--addUser--\n" + data ); res.end( JSON.stringify(data)); }); }) //---------------------------------------------------------------- app.get('/getUser/:id', function (req, res) { // 首先我们读取已存在的用户 fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); var user = data["user" + req.params.id] console.log("--getUser--\n" + user ); res.end( JSON.stringify(user)); }); }) //---------------------------------------------------------------- app.get('/login/:name/:password', function (req, res) { // 首先我们读取已存在的用户 fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { var user = null; var rspData = JSON.parse(data); console.log("--login--",); console.log("param name=", req.params.name); console.log("param password=", req.params.password); for (x in rspData) { //console.log(rspData[x]); if(req.params.name == rspData[x].name && req.params.password == rspData[x].password) { user = rspData[x]; console.log(user); break; } } if (user == null) { console.log("Cannot find the user!"); //res.statusCode = 404; user = "" } res.end( JSON.stringify(user)); }); }) //---------------------------------------------------------------- var id = 2; app.get('/deleteUser', function (req, res) { // First read existing users. fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); delete data["user" + id]; console.log("--deleteUser--\n" + data ); res.end( JSON.stringify(data)); }); }) var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("应用实例,访问地址为 http://%s:%s", host, port) })
{ "user1" : { "name" : "mahesh", "password" : "password1", "profession" : "teacher", "id": 1 }, "user2" : { "name" : "suresh", "password" : "password2", "profession" : "librarian", "id": 2 }, "user3" : { "name" : "ramesh", "password" : "password3", "profession" : "clerk", "id": 3 } }