初学node.js中实现删除用户路由

JavaScript010

初学node.js中实现删除用户路由,第1张

一、users_model.js

功能:定义用户对象模型

var

mongoose=require('mongoose'),

Schema=mongoose.Schema

var

UserSchema=new

Schema({

username:{type:String,unique:true},

email:String,

color:String,

hashed_password:String

})

mongoose.model('User',UserSchema)

二、users_controller.js

功能:为Express服务器实现删除用户路由

var

crypto=require('crypto')

var

mongoose=require('mongoose'),User=mongoose.model('User')

function

hashPW(pwd){

return

crypto.createHash('sha256').update(pwd).

digest('base64').toString()

}

//实现删除用户路由

exports.deleteUser=function(req,res){

User.findOne({_id:req.session.user})

.exec(function(err,user){

if(user){

user.remove(function(err){

if(err){

req.session.msg=err

}

req.session.destroy(function(){

res.redirect('/login')

})

})

}else{

req.session.msg="User

Not

Found!"

req.session.destroy(function(){

res.redirect('/login')

})

}

})

}

三、user.html

<!DOCTYPE

html>

<html

ng-app="myApp">

<head>

<meta

charset="UTF-8">

<title>用户修改</title>

<link

rel="stylesheet"type="text/css"

href="/static/css/styles.css"

rel="external

nofollow"

/>

<script

src="https://cdn.staticfile.org/angular.js/1.5.8/angular.min.js"></script>

<script

src="/static/js/my_app.js"></script>

</head>

<body>

<div

class="form-container"

ng-controller="myController">

<p

class="form-header">用户修改</p>

<form

method="POST"

action="/user/update">

<label>用户名:</label>

<input

type="text"

name="username"

ng-model="user.username"

disabled><br>

<label>Email:</label>

<input

type="email"

name="email"

ng-model="user.email"><br>

<label>肤色:</label>

<input

type="text"

name="color"

ng-model="user.color"><br>

<input

type="submit"

value="Save">

</form>

</div>

<form

method="POST"

action="/user/delete">

<input

type="submit"

value="删除用户">

</form>

<hr><%=msg%>

<hr>{{error}}

</body>

</html>

四、routes.js

功能:为Express服务器实现处理Web请求路由

var

crypto=require('crypto')

var

express=require('express')

module.exports=function(app){

var

users=require('./controllers/users_controller')

app.use('/static',express.static('./static')).

use('/lib',express.static('../lib')

)

app.post('/user/delete',users.deleteUser)

五、页面显示效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:JavaScript中使用Substring删除字符串最后一个字符javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】JS实现数组删除指定元素功能示例JavaScript怎样在删除前添加确认弹出框?PHP

结合

Boostrap

结合

js

实现学生列表删除编辑及搜索功能原生JS实现动态添加新元素、删除元素方法JS删除String里某个字符的方法

原生模式就是使用原生的html、css、js书写代码,它可以与所有浏览器、系统完美兼容,但开发效率较低;无框架模式是利用路由、mvvm、模版引擎以及工具,大大提高代码的开发效率,复杂度也更高,但不能完美兼容所有的平台。

相信大家在做项目的时候,肯定会遇到这样的问题:我点击新增按钮,需要弹出个弹框,然后我点击对应的关闭按钮,关闭弹框,但是新增按钮和关闭按钮操作的是另一个元素,所以需要获取dom元素进行操控,那么在vue中怎么操作dom呢?

以下是常用的三种方法:

1、jQuery操作dom(推荐指数:★☆☆☆☆):

只要拿jQuery的选择器,选中相应的dom进行操作就可以了,但是大家都知道jQuery获取元素是查找页面所有,相当于“循环”所有元素直至找到需要的dom,但是vue是单页面的,jQuery获取dom并不只是获取vue当前页面,而是从根路由开始查找所有,当其他页面出现相同的元素,也会被获取到,而且jQuery操作的dom,如果是根据动态获取数据渲染的,那么写在mounted里的操作方法将会失效,必须放到updated里,这样会导致有些操作被执行多遍,所以还是 不建议 在vue中使用jQuery。

2、原生js操作dom(推荐指数:★★★★☆):

原生js获取dom就很简单了,例如:根据id、class、当前元素的上一个元素......

3、vue官方方法:ref(推荐指数:★★★★★):

vue中的ref是把当前dom元素 “ 抽离出来 ” ,只要通过 this.$refs就可以获取到(注意this指向),此方法尤其适用于父元素需要操作子组件的dom元素,这也是子传父传递数据的一种方法

下面让我来看个案例:

设置了一个button按钮,通过点击事件,然后弹出 新增的弹框 , 然后点击 “ × ”的button按钮,关闭弹框,此时需要操作弹框的dom元素,通过ref定义一个名字, 然后在方法中通过 this.$refs.名字 获取对应的dom