express简要代码简读

Posted littlepage

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了express简要代码简读相关的知识,希望对你有一定的参考价值。

express 是一个js的web框架,对http库进行了二次封装。下面是一段精简简要解读,带注释。
依赖npm外部库:express、body-parser、multer
body-parser是一个进行解析request的body段区域的js库
multer是一个进行解析文件upload的库
使用这三个库,会使js web开发变得更加优雅

var express = require('express');//express模块,需要安装
var bodyParser = require('body-parser');//body-parser模块,需要安装,解析body
var fs = require('fs');//fs模块
var multer = require('multer')//multer模块,需要安装
/**
访问目录,如果没有,则创建
*/
var createFolder = (folder)=>{
    try{
        fs.accessSync(folder);
    }catch(e){
        fs.mkdirSync(folder);
    }
}
//定义uploadFolder
var uploadFolder = './upload/';

//调用访问目录函数
createFolder(uploadFolder);

//调用存储
var storage = multer.diskStorage({
    destination : function(req,file,cb){
        cb(null,uploadFolder)
    },
    filename: function(req,file,cb){
        cb(null,file.originalname)
    }
})

//设置multer的存储路径
var upload = multer({storage: storage});

//启动express
var app = express()

//使用bodyParser解析头部
app.use(bodyParser.urlencoded({ extended:false }))
//使用bodyParser解析json
//app.use(bodyParser.json())

//post表单文件是commonfile,上传enctype="multipart/form-data"
app.post('/upload',upload.single('commonfile'),(req,res)=>{
    console.dir(req.body)
    res.send({'ret_code':0});
})

//get表单文件,使用fs进行发送
app.get('/form',(req,res)=>{
    res.sendFile(__dirname + '/form.html');//这句话与下面两句话等价
    //var form = fs.readFileSync('./form.html',{encoding:'utf8'});
    //res.send(form)
})

//post 使用JSON.stringify解析
app.post('/',(req,res)=>{
    console.dir(req.query);
    console.dir(req.body)
    res.send("post method: " + JSON.stringify(req.query) + '
' )
})

//get 发送头部param的find属性
app.get('/',(req,res)=>{
    console.dir(req.query);
    res.send("home page: " + req.query.find)
})

//get 发送OBJ或者动态ID属性
app.get('/profile/:id',function(req,resp){
    var jsonObj = {
        name: "steve",
        age: '18'
    }
    // resp.send(jsonObj);
    // resp.json(jsonObj);
    console.dir(req.params);
    console.dir(jsonObj);
    resp.send("your request to see profile with id of " + req.params.id)
})

//监听端口
app.listen(8080);
console.log('listening to port 8080')

以上是关于express简要代码简读的主要内容,如果未能解决你的问题,请参考以下文章

简读《我编程,我快乐:程序员职业规划之道》

简读《构建之法》提问

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

cyclic job shop 机器人单元调度问题的蚁群优化(Ant colony optimization)的论文简读和python框架复现

简读

关于最近邻的噪声标签建模论文简读