zoukankan      html  css  js  c++  java
  • Router路由的实现

    在router文件中,所有前台访问的接口在此实现。

    Rooms:

    var express = require('express');
    var router = express.Router(); //引用router模块
    var Rooms = require('../models/Rooms');
    var multiparty = require('multiparty'); //实现文件上传模块
    var util = require('util'); //提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足
    var fs = require('fs'); //文件系统模块(
    
    //获取所有房间信息
    router.get('/getallrooms', function (req, res, next) {
        var count = parseInt(req.query.count);
        Rooms.find({}, function (err, rooms) {
            if (err) {
                return next(err);
            }
            //console.log(rooms);
            res.send({rooms: rooms});
        }).limit(count); //只查询4条数据
    });
    //按分类查找房间列表
    router.get('/getcategoryrooms', function (req, res, next) {
        var bigCategory = req.query.bigCategory;
        var smallCategory = req.query.smallCategory;
        var count = parseInt(req.query.count);
        Rooms.find({BigCategory: bigCategory, SmallCategory: smallCategory}, function (err, rooms) {
            if (err) {
                return next(err);
            }
                res.send({rooms: rooms});
        }).limit(count);
    });
    //查找我的房间列表
    router.get('/getmyrooms', function (req, res, next) {
        var userId = req.query.userId;
        var count = parseInt(req.query.count);
        Rooms.find({UserId: userId}, function (err, rooms) {
            if (err) {
                return next(err);
            }
            res.send({rooms: rooms});
        }).limit(count);
    });
    //添加房间照片
    router.post('/addroomphoto/:id', function (req, res) {
        //生成multiparty对象,并配置上传目标路径
        var id = req.params.id;
        var form = new multiparty.Form({uploadDir: './App/resource/photos/'});
        //上传完成后处理
        form.parse(req, function (err, fields, files) {
            var filesTmp = JSON.stringify(files, null, 2);
            //上传完成后处理
            if (err) {
                console.log('parse error: ' + err);
            } else {
                console.log('parse files: ' + filesTmp);
                var inputFile = files.file[0];
                var uploadedPath = inputFile.path;
                var dstPath = './App/resource/photos/' + inputFile.originalFilename;
                //重命名为真实文件名
                fs.rename(uploadedPath, dstPath, function (err) {
                    if (err) {
                        console.log('rename error: ' + err);
                    } else {
                        console.log('rename ok');
                    }
                    //修改房间的突破路径
                    Rooms.findById(id, function (err, room) {
                        if (err) {
                            return err;
                        }
                        room.Img = inputFile.originalFilename;
                        room.save(function (err) {
                            if (err) {
                                return err;
                            }
                            res.writeHead(200, {'content-type': 'text/plain;charset=utf-8'});
                            res.write('success');
                            res.end();
                        });
                    })
                });
            }
        });
    
    
    });
    //创建房间
    router.post('/addroom', function (req, res) {
        var room = new Rooms();
        room.Name = req.body.Name;
        room.BigCategory = req.body.BigCategory;
        room.SmallCategory = req.body.SmallCategory;
        room.Img = "base.jpg";
        room.CreateTime = Date.now();
        room.UserId = req.body.UserId;
        room.save(function (err, room) {
            if (err) {
                console.log('save failed');
            }
            console.log('save success');
            res.send({state: 'success', room: room});
        });
    });
    //检查房间所有者
    router.post('/checkRoomByUserId', function (req, res) {
    
        var roomId = req.body.RoomId;
        var userId = req.body.UserId;
    
        Rooms.find({_id: roomId, UserId: userId}, function (err, room) {
            if (err) {
                console.log('find failed');
            }
            if (room && room.length > 0) {
                res.send({state: 'success'});
            }
            else {
                res.send({state: 'error'});
            }
        });
    });
    module.exports = router;

    Users

    var express = require('express');
    var router = express.Router();
    var Users = require('../models/Users');
    var user = new Users();
    /* GET users listing. */
    //检查登录信息
    router.post('/login', function(req, res, next) {
      var userName=req.body.UserName;
      var passWord=req.body.PassWord;
      Users.find({UserName:userName,PassWord:passWord}, function (err, user) {
          if(err){
           return err;
          }
        if(user&&user.length>0){
          res.send({state:'success',user:user});
        }
        else{
          res.send({state:'error'});
        }
    
      })
    });
    //添加用户
    router.post('/adduser', function (req, res) {
      user.Name = req.body.Name;
      user.UserName = req.body.UserName;
      user.PhoneNumber = req.body.PhoneNumber;
      user.IdCard = req.body.IdCard;
      user.Identity = req.body.Identity;
      user.PassWord = req.body.PassWord;
      user.CreateTime = Date.now();
      user.save(function (err,result) {
        if (err) {
          console.log('save failed');
          res.send({state:'error',user:result});
        }
        res.send({state:'success',user:result});
      });
    });
    module.exports = router;
  • 相关阅读:
    js浏览器之浏览器对象
    js浏览器
    js面向对象编程之创建对象
    js面向对象编程
    STS清理
    使用STS新的工作空间无需再配置
    去掉文本框中的空格
    MySQL轻量版使用,无需安装,无脑操作
    Eclipse&STS常用小技巧
    如何配置上传虚拟路径问题?
  • 原文地址:https://www.cnblogs.com/y8932809/p/6185983.html
Copyright © 2011-2022 走看看