Node.js学习-Node.js入门-06CRUD

//app.js
var express = require('express');
var app = express();

app.use('/ode_modules/',express.static('./node_modules/'));
app.use('/public/',express.static('./public/'));

app.engine('html',require('express-art-template'));
app.get('/',function(req,res){
	res.render('index.html');
});
app.listen(3000,function(){
	console.log('running 3000...');
});
先尝试从文件中获取数据并渲染到页面
//json不支持注释,copy时需要将注释全部删掉
//db.json
{
	"students":[
		{"id":1,"name":"xx","gender":0,"age":18,"hobbies":"xx、xx、xx"},
		{"id":2,"name":"xx","gender":0,"age":18,"hobbies":"xx、xx、xx"},
		{"id":3,"name":"xx","gender":0,"age":18,"hobbies":"xx、xx、xx"},
		{"id":4,"name":"xx","gender":0,"age":18,"hobbies":"xx、xx、xx"},
		{"id":5,"name":"xx","gender":0,"age":18,"hobbies":"xx、xx、xx"}							
	]
}
/*
<tbody>
	{{each students}}
		<tr>
			<td>{{ $value.id }}</td>
			<td>{{ $value.name}}</td>
			<td>{{ $value.gender}}</td>
			<td>{{ $value.age}}</td>
		</tr>
	{{/each}}
</tbody>
*/
//添加读取文件功能
var fs = require('fs');
//在需要读取的地方加入
fs.readFile('./db.json','utf8',function(err,data){
	if(err){
		return res.status(500).send('Server error');
	}
	res.render('index.html',{
		students:JSON.parse(data).students
	});
});
路由设计
  • router.js
/*
module.exports = function(app){
	app.get('/studnets',function(req,res){});
	app.get('/studnets/new',function(req,res){});
	app.get('/studnets/xxx',function(req,res){});
	app.get('/studnets/xx',function(req,res){});
	app.get('/studnets/xxxx',function(req,res){});
}
*/
var express = require('express');
//创建路由容器
var router = express.Router();
//填充容器
router.get('/studnets',function(req,res){});
router.get('/studnets/new',function(req,res){});
router.get('/studnets/xxx',function(req,res){});
router.get('/studnets/xx',function(req,res){});
router.get('/studnets/xxxx',function(req,res){});
//导出router
module.exports= router;
//app.js
var express = require('express');
var router = require('./router');
var bodyParser = require('body-parser');
var app = express();

app.use('/node_modules/',express.static('./node_modules/'));
app.use('/public/',express.static('./publiuc/'));

app.engine('html',require('express-art-template'));

app.use(bodyPares.urlencoded({extended:false}));
app.use(bodyParser.json);
//使用req.body获取post中的数据
/*
router(app);
*/
//挂载路由
app.use(router);

app.listen(3000,function(){
	console.log('xxx');
});
module.exports = app;
设计文件操作模块

var fs = require('fs');
/*
文件数据操作
*/
var dbPath = './db.json';

//callback第一个参数为err,第二个为[]对象
//获取学生列表
exports.find = function(callback){
	fs.readFile(dbPath,'utf8',function(err,data){
		if(err){
			return callback(err);
		}
		callback(null,JSON.parse(data).students);
	});
}
/*
其他模块引用
var Student = require("./student.js");
Student.find(function(err,student){});
*/

//保存
exports.save = function(student,callback){
	fs.readFile(dbPath,'utf8',function(err,data){
		if(err){
			return callback(err);
		}
		var studnets = JSON.parse(data).students;
		student.id = students[student.length-1].id+1;
		students.push(student);
		var fileData= JSON.stringfy({students:students});
		fs.writeFile(dbPath,fileData,function(err){
			if(err){
				return callback(err);
			}
			callback(null);
		});
	});
}

/*
其他模块引用
var Student = require("./student.js");
Student.save(studnet,function(err){});
*/
//跟新
exports.updateById = function(student,callback){
	fs.readFile(dbPath,'utf8',function(err,data){
		if(err){
			return callback(err);
		}
		var students = JSON.parse(data).students;
		var stu = students.find(function(item){
			//当符合条件时返回符合的item
			return item.id === student.id;
		});
		//stu.name = student.name;
		//stu.age = student.age;
		for(var key in student){
			stu[key] = student[key]
		}
		var fileData = JSON.stringfy({
			students:students
		});
		fs.writeFile(dbPath,fileData,function(err){
			if(err){
				return callback(err);
			}
			callback(null);
		});
	});
}
/*
Student.updateById({
		id:1,
		name:'xxx'
	},function(err){});
*/

//删除
exports.deleteById = function(id,callback){
	fs.readFile(dbPath,'utf8',function(err,data){
		if(err){
			return callback(err);
		}
		var students = JSON.parse(data).students;
		var deleteId= students.findIndex(function(item){
			//当符合条件时返回符合的item
			return item.id === parseInt(id);
		});
		students.splice(deleteId,1);
		var fileData = JSON.stringfy({
			students:students
		});
		fs.writeFile(dbPath,fileData,function(err){
			if(err){
				return callback(err);
			}
			callback(null);
		});
	});
}
/*
Student.deleteById(id,function(err){});
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值