express增删改查操作
知识点:
- 静态资源文件使用,使用模板 art-template
- post、get接口值获取
- 文件读取、写入
- 模块化,主页、路由、逻辑处理
说明:
使用 art-template ,默认开放读取 views 目录下的文件
app.engine('html',require('express-art-template'));
渲染:
res.render('文件',{
“模板字符”:data
});
开放指定目录下的文件,可直接路由访问。第一个参数是路由访问时所带路径,可与开放("/public")目录名称一致,也可以不一致;不带则直接 "/" 访问
app.use('/public/',express.static('views'));
app.use(express.static('views'));
get 接口获取参数 : req.query
post 接口获取参数:借助第三方插件 "body-parser", req.body
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
文件操作,文件读取和写入都是对字符串进行操作
文件读取,文件名、编码格式、回调函数
fs.readFile(dbPath,'utf8',function(err,data){})
文件写入:文件名、写入数据、回调函数
fs.writeFile('db.json',JSON.stringify({students:students}),function(err,data){})
模块化,服务页面只处理服务操作、路由中只处理业务、单独处理数据之间的联系
服务与路由之间的关系处理(exports)
服务模块
var express = require('express');
var bodyParser=require('body-parser');
//配置express
var app = express();
app.engine('html',require('express-art-template'));
//配置body-parse
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
//开放静态资源
app.use('/node_modules/',express.static('node_modules'));
// 将 router 挂载到服务主页面上
app.use(router);
app.listen('3000',function(){
console.log('服务启动中');
});
路由模块
方法一:通过 module.exports 传参提取,在服务模块引入此文件 require('./......')
module.exports=function (app){
app.get('/',function (req,res) {
})
app.post('/message',function (req,res) {
})
}
方法二:express 提供了一种封装路由的方法,引入数据处理模块 require('./option')
var router=express.Router();
router.get('/',function (req,res) {
option.find(function(err,data){
if(err){
return '出错了。。。。。'
}
res.render('readShow.html',{
students:data
});
});
router.post('/post',function (req,res) {
})
路由和数据处理模块的关系,主 回调函数,次 exports。注意 callback 回调函数 和 路由关系(find)
exports.find=function (callBack) {
fs.readFile(dbPath,'utf8',function(err,data){
if(err){
callBack(err);
}
callBack(null,JSON.parse(data).students);
})
}