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