node.js notes --- CRUD

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

app.engine ( 'html', require ( 'express-art-template')) // name suffix after the introduction of HTML module
app.use ( '/ public /', express.static ( './ public /')) // Open static module
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use (bodyParser.json ()) // post request method to increase when there is obtained the intermediate form data to a method req.body ()
// routed to mount after the middleware
app.use(router)

app.listen(3000, function () {
    console.log('server is running')
})
 
Routing settings:
 
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('/')
//     })
// }
 
 
Data Manipulation
var fs = require('fs')

was dbPath = './db.json'

// Get the user
exports.finds = function(callback){
    fs.readFile(dbPath,function(err,date){
        if(err){
            callback(err)
        }
        callback(null,JSON.parse(date).user)
    })
}

// find the user according to id
exports.findById = function (id, callback) {
    fs.readFile(dbPath, 'utf8', function (err, data) {
      if (err) {
        return callback(err)
      }
      var user = JSON.parse(data).user
      was quite = user.find (function (item) {
        return item.id === parseInt(id)
      })
      callback(null, ret)
    })
  }

// save the user
exports.save = function (users, callback) {// users: Adding user
    fs.readFile (dbPath, 'utf8', function (err, date) {// read the source file user
        if(err){
            return callback(err)
        }

        var user = JSON.parse (date) .user // converted into the original user character string type objects
        users.id = user[user.length - 1].id + 1
        user.push(users)

        var fileData = JSON.stringify ({user: user}) // After addition the file into a string

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

// modify user
exports.change = function(users,callback){
    fs.readFile (dbPath, 'utf8', function (err, data) {// read the source file user
        if(err){
            return callback(err)
        }
        var user = JSON.parse(data).user
        users.id = parseInt(users.id)
        var upUser = user.find (function (item) {// find the target user and returns
            return item.id === users.id
        })
        for (var key in users) {// the modified content assignment

 

 

            upUser[key] = users[key]
        }
        var fileData = JSON.stringify ({user: user}) // After addition the file into a string

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

//delete users
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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Guess you like

Origin www.cnblogs.com/hu-tiger/p/12013990.html