使用nodejs编写社区

首页
这里写图片描述
登录页面
这里写图片描述
注册页面
这里写图片描述


1)初始化依赖包

npm init -y

2)安装依赖

npm install --save express mongoose bootstrap jquery

3)创建public文件夹,用于存放公共样式
router文件夹,用于存放路由
views文件夹,用于存放视图文件
model文件夹,用于存放数据库文件
这里写图片描述
4)创建app.js文件,启动程序
app.js=>

let express=require('express');
let app=express();
let path=require('path')
//设置静态资源
app.use('/public',express.static(path.join(__dirname,'/public/')))
app.use('/node_modules',express.static(path.join(__dirname,'/node_modules')));
//设置views为视图入口
app.engine('views',path.join(__dirname,'/views/'))

5)安装模板引擎,,用于渲染数据

npm install --save art-template express-art-template
在app.js中引入,配置
    app.js=>
    app.engine('html',require('express-art-template'))//遇到html文件,就使用模板渲染

6)利用子模板和模板继承创建视图文件
自模板使用—>{{include ‘./header.html’}}
模板继承—–>{{extends ‘_layout/layout.html’}}
不相同的部分用block—–>{{block ‘content’}} 默认内容{{/block}}
7)创建路由
1)创建router.js文件
2)router.js==>

let express=require('express');
let Router=express.router();
Route.get('/',(req,res)=>{
    res.render('index.html')
})
.....路由模块
module.exports=Router;
3)在app.js中引入路由,并使用
let router=require('./router.js')
app.use(router)(要在最后一步)

之后就是各个部分的操作(get用于显示页面,post请求用于处理页面程序)


1)处理表单注册
前提:button类型是submit

register.html中
$(function(){
    $('#register_form').on('submit',function(e){
        e.preventDefault();   (1)阻止默认行为
        var fromData=$(this).serialize();    (2)表单序列化
        $.ajax({                           (3)ajax请求
            url:'/register',
            type:'POST',
            data:formData,
            dataType:'json',
            success:function(res){

            }
        })

    })
})
router.js中
    Router.post('/register',(req,res)=>{
        (1)获得用户输入的数据(post请求获取数据用body-parser)
            let body=req.body;
        (2)mongoose存储数据
        (3)向前台返回数据
    })
2)mongoose存储数据
        1)安装依赖  

npm install --save mongoose
    user.js中
        let mongoose=require('mongoose');
        let Schema=mongoose.Schema;
        let UserSchems=new Schema({
            //用于说明属性的类型
            email:{type:String,required:rtue},
            nickname:{type:String,required:true},
            password:{type:String,required:true},
            create_time:{type:Date,default:Date.now},
        })
        mongoose.connect('mongodb://127.0.0.1:3000/user',{useNewUrlParse:true})
        module.exports=mongoose.model('User',UserSchema);



----------


在router.js中register中
    let User=require('./models/user.js')
    var body=req.body;
    User.findOne({
        $or:[{email:body.email},{nickname:body.nickname}]
    },function(err,user){
        if(err){return res.status(500).json({
                err_code:500,
                err_message:'服务器错误'
            })}
        if(user){return res.status(200).json({err_code:1,err_message:'用户已存在'})}
        //用session存储用户状态
            req.sessiong.user=user;
            return res.status(200).json({err_code:2,err_message:'注册成功'})

    })

md5加密
1)安装依赖

npm install --save blueimp-md5

2)引入并使用

let md5=require('blueimp-md5');
body.password=md5(md5(body.password))

session 存储数据
1)安装依赖

npm install --save express-session
let session=require('express-session')
app.use(session{
    secret:'key',
    resave:false,
    saveUninitialized:true
})
使用session
    1)添加   req.sessiong.user=user;
    2)显示数据   console.log(req.sessiong.user)

重定向对异步请求无效
解决方法:客户端重定向

    window.location.href='/index'

退出处理
1)清除登录状态
req.sessiong.user=null;
2)重定向
res.redirect(‘/login’)


post请求的数据用body-parser
1)安装依赖

npm install --save body-parser

2)引入并使用

let bodyparser=require('body-parser');
app.use(bodyParser.urlencode({extended:false}));
app.use(bodyParse.json());

3)使用

    let body=req.body

app.js

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值