node.js笔记---增删改查

var express = require('express')
var fs = require('fs')
var bodyParser = require('body-parser')
var router = require('./router')
var app = express()

app.engine('html', require('express-art-template'))          //在后缀名为HTML的时后引入模块
app.use('/public/', express.static('./public/'))                    //开放静态模块
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())                                             //在请求方法为post的时候要加这个中间件来有得到表单数据的方法req.body()
//路由要挂载在中间件之后
app.use(router)

app.listen(3000, function () {
    console.log('server is running')
})
 
路由设置:
 
var fs = require('fs')
var express = require('express')
var users = require('./user')

var router = express.Router()

router.get('/', function (req, res) {
    users.finds(function(err,user){
        if (err) {
            return res.status(500).send('server err')
        }
        res.render('login.html', {
            user: user
        })
    })
})

router.get('/regist', function (req, res) {
    res.render('regist.html')
})

router.get('/change', function (req, res) {
   users.findById(parseInt(req.query.id),function(err,users){
       if(err){
        return res.status(500).send('Server error.')
       }
       res.render('change.html',{
           users:users
       })
   })
})
router.post('/change',function(req,res){
    users.change(req.body,function(err){
        if(err){
            return res.status(500).send('server err')
        }
        res.redirect('/')
    })
})

router.get('/del',function(req,res){
    users.del(parseInt(req.query.id),function(err,users){
        if(err){
         return res.status(500).send('Server error.')
        }
        res.redirect('/')
    })
})


router.get('/log', function (req, res) {
    users.save(req.body,function(err){
        if(err){
            return res.status(500).send('server err')
        }
        res.redirect('/')
    })
})

module.exports = router




// module.exports = function(app){
//     app.get('/', function (req, res) {
//         fs.readFile('./db.json', function (err, data) {
//             if (err) {
//                 return res.status(500).send('server err')
//             }
//             res.render('login.html', {
//                 user:JSON.parse(data).user
//             })
//         })
//     })

//     app.get('/regist', function (req, res) {
//         res.render('regist.html')
//     })

//     app.get('/change', function (req, res) {
//         res.render('change.html')
//     })

//     app.post('/log', function (req, res) {
//         var newUer = req.body;
//         user.push(newUer);
//         res.redirect('/')
//     })
// }
 
 
数据操作
var fs = require('fs')

var dbPath = './db.json'

//获取用户
exports.finds = function(callback){
    fs.readFile(dbPath,function(err,date){
        if(err){
            callback(err)
        }
        callback(null,JSON.parse(date).user)
    })
}

//根据id找到用户
exports.findById = function (id, callback) {
    fs.readFile(dbPath, 'utf8', function (err, data) {
      if (err) {
        return callback(err)
      }
      var user = JSON.parse(data).user
      var ret = user.find(function (item) {
        return item.id === parseInt(id)
      })
      callback(null, ret)
    })
  }

//保存用户
exports.save = function(users,callback){   //users:添加的用户
    fs.readFile(dbPath,'utf8',function(err,date){ //读取源文件的用户
        if(err){
            return callback(err)
        }

        var user = JSON.parse(date).user  //将原用户字符串类型转换成对象
        users.id = user[user.length - 1].id + 1
        user.push(users)

        var fileData =  JSON.stringify({user:user}) //添加完后文件转为字符串

        fs.writeFile(dbPath,fileData,function(err){ //写入db.json
            if(err){
                return callback(err)
            }
            callback(null)
        })
    })
}

//修改用户
exports.change = function(users,callback){
    fs.readFile(dbPath,'utf8',function(err,data){ //读取源文件的用户
        if(err){
            return callback(err)
        }
        var user = JSON.parse(data).user
        users.id = parseInt(users.id)
        var upUser = user.find(function(item){         //找到目标用户并返回
            return item.id === users.id
        })
        for(var key in users){                           //将修改后的内容进行赋值
            upUser[key] = users[key]
        }
        var fileData =  JSON.stringify({user:user}) //添加完后文件转为字符串

        fs.writeFile(dbPath,fileData,function(err){ //写入db.json
            if(err){
                return callback(err)
            }
            callback(null)
        })
    })
}

//删除用户
exports.del = function(id,callback){
    fs.readFile(dbPath, 'utf8', function (err, data) {
        if (err) {
          return callback(err)
        }
        var user = JSON.parse(data).user
        var delId = user.findIndex(function(item){
            return item.id === parseInt(id)
        })
        user.splice(delId,1)
        
        var fileData = JSON.stringify({
            user:user
          })

        fs.writeFile(dbPath,fileData,function(err){ //写入db.json
            if(err){
                return callback(err)
            }
            callback(null)
        })
})
}

 



 https://pan.baidu.com/s/1FHgA-eQWQVqs0JVPgOGbMA
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/hu-tiger/p/12013990.html