初学node.js-nodejs中实现修改用户路由

经过前面几次的学习,已经可以做下小功能,今天要实现的是修改用户路由。

一、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.updateUser=function(req,res){
    User.findOne({_id:req.session.user})
    .exec(function(err,user){
        user.set(‘email‘,req.body.email);
        user.set(‘color‘,req.body.color);
        user.save(function(err){
            if(err){
                res.sessor.error=err;
            }else{
                req.session.msg=‘User Updated. ‘;
            }
            res.redirect(‘/user‘);
        });
    });
};

三、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" />
  <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/update‘,users.updateUser);

五、页面显示效果

原文地址:https://www.cnblogs.com/zhouxuejia/p/10914258.html

时间: 2024-10-11 07:17:51

初学node.js-nodejs中实现修改用户路由的相关文章

windows下node.js+sublime中安装coffeescript

node.js中安装Coffeescript 1.我的node.js安装目录 2.node.js 全局模块所在目录 3.node.js安装coffeescript 1 npm install -g coffee-script 至此理论上node.js中已经安装好coffeescript编译器了,不过我第二次安装时遇到了问题,就是-w参数使用时会报错,Error:watch EINVAL 我在第一安装时,没遇到任何问题,不过那个时候,没有明确的安装步骤.当时找到的一些资料讲的并不明确.不过-c参数

从 Node.js 错误中获得的经验

有多少次你发现自己在终端或监控系统内查看堆栈轨迹,但并不能看出个所以然来?如果你的回答是“很多次”,那么这篇帖子你应该看看.如果你不经常碰上这种情况也没关系,你也可以看看这篇文章解闷. 当处理 Node.js 服务器的复杂数据时,要会从可返回给请求方的错误中总结经验,具备此能力至关重要.在处理一个请求时,一个错误出现会引起链接里另一个错误的出现,于是问题就来了.当此脚本出现时,一旦你生成了新错误,并将它返回到了链接,那你就丢失了与原始错误的所有连接.    达尔文达尔文翻译于 5天前 0人顶 顶

node.js项目中使用coffeescript的方式汇总

Coffeescript作为Javascript低调的小弟实在是有过人之处,使用它可以增进开发效率,减少代码错误, 关键是能大幅提升开发愉悦感.我越来越觉得只要可能就在自己的项目中把coffee用起来. 然而也许你和我一样,在了解完coffeescript的语法后准备一试身手的时候,却面对如何把它引入项目而犯起愁来. 其实coffeescript这种语言因其可以一对一地翻译为javascript的特性,使用起来其实非常灵活. 将其引入项目的方式也不止一个.这里,我先就node项目引入coffee

初学Node.js

下载Node.js,官方网址:https://nodejs.org/en/download/ 可根据根据自己的电脑配置来下载相当于的Node.js 下载完成后使用Windows键+R 输入cmd 输入 Node.js,输入1+1是否出现=2,当出现,那么你Node.Js就安装成功了 然后在Visual Studio Code测试代码 var http=require('http');http.createServer(function(req,res){ res.writeHead(200,{'

初学node,js入门篇(1) ========搭建第一个node服务器

闲来无事,研究一番node.js,虽然网上已有大把的资源教程,但是还是不如自己手写一份来的记忆深刻. 创建node服务器第一步:下载node.js安装以及配置环境变量. 创建node服务器第二步:找到node.js的根目录,盘符:\nodejs\node_modules   这是node.js的根目录. 创建node服务器第三步:创建一个新的js文件,例如server.js,放置在node_modules目录下面. 创建node服务器第四步:编辑server.js文件,具体代码如下 //引入re

Node.js继承中的静态类对象(《node.js开发实战详解》书中一些错误的改正)

今天气真好,最近挂掉一些面试之后心情略失落. 神马都是浮云,要永远做好世界第二. 不多提了,你问我心态为啥变好了.-------都是情怀,,. 嗯啊,最近在研究node. 别人问?你这水平还node... 哈哈哈,好伤心.... 不多提了,言归正传. 神马模块化神马的先就不多讲了,就一个module.export和export区别,后者对象的属性属于前者,逆命题不成立. 还有util.inherits(A,B)这个API注意一下A只会继承B的原型方法,原型以外的不会继承.不是说原型中数据是共享的

初学node.js之控制台输出and监听http请求

对于NODE.JS安装很简单就是找到对应电脑版本直接安装就可以,目前所知,不用任何配置. 安装好以后,直接会有node.js command prompt运行程序. 然后就可以创建第一个小程序了,直接在一个文件夹中创建一个文件,比如first.js,然后打开,在里面写入:console.log("Hello JS"):就这样第一个程序就完成了.打开node.js command prompt进入到该文件夹,输入 node first.js就会发现在控制台打印出:Hello JS 字样.

初学Node.js -环境搭建

从毕业一直到现在都是在做前端,总感觉缺少点什么,java? PHP? .Net? 框架太多了,学起来不好掌握,听说node.js挺牛的,我决定把node.js好好的学一下.首先是环境的配置,这个配置真的折磨了我好久,每当我感觉配好了之后,程序运行他就开始报错,没有这个模块,没有那个模块的,然后我把node卸载了,准备重新安装 好好的研究一下环境的搭建. 第一,官网下载node的msi安装包,然后默认安装就行了. 第二,安装两个全局模块 在命令行输入: npm install -g express

Node.js开发入门—Express里的路由和中间件

我们已经基于Express写了HelloWorld示例,还使用express generator工具创建了一个HelloExpress项目,但有一些代码一直没有好好解释,这是因为它们牵涉到路由和中间件等概念,三言两语说不清楚,所以我专门用一篇文章来讲路由和中间件. 路由 通常HTTP URL的格式是这样的: http://host[:port][path] http表示协议. host表示主机. port为端口,可选字段,不提供时默认为80. path指定请求资源的URI(Uniform Res