Nodejs express之参数接收

来源:互联网 发布:电脑摄像头做网络监控 编辑:程序博客网 时间:2024/06/06 09:19

express的参数接收也是非常之方便

对于express共有三中形式的参数

1、直接get方式附在url?之后key=value形式的 xxx.xx?y=x

此种直接使用req.query.y就可以取到参数y的值了

2、路径参数,和类似路径 xxyy/name/pass,想对应的路由为app.get('/xxyy/:name/:psss')这时name和pass就为路径参数:name,name就为形参名,同样pass为形参名

对于此种方式的参数需要使用req.params.name 和req.params.pass就可以可以接收了(req.params['name'])

3、对于表单POST过来的参数,需要借助于中间件来接收,body-parser和multer,body-parse不能处理文件上传,multer可以处理文件上传,一把multer已经具有body-parser的功能

body-parser 首先需要安装 

npm install body-parser --save

// 导入express模块

var express = require('express');
// 创建app对象var app = express();
app.use(bodyParser.urlencoded())
app.post('/bodyParams',function(req,res){    console.log('嗯进来了')    console.log('name:'+req.body.name)    console.log('pas:'+req.body.pass)})

然后就可以直接使用req.body.p参数名 来接收了,但是不能接收文件,

如果要上传文件需要使用multer中间件:

npm install multer --save

var express = require('express');
// 创建app对象var app = express();
// 文件暂存目录(貌似muter已经具有了bodyParder的功能)app.use(multer({'dest':'./dest'}))
app.post('/bodyParams',function(req,res){    console.log('嗯进来了')    console.log('name:'+req.body.name)    console.log('pas:'+req.body.pass)    console.log('av:'+req.files.avatar)    res.end()})
可以使用req.files.文件名称来访问文件了
multer具有了body-parser的接收普通表单post参数的功能和文件处理功能,但是multer只能处理enctype="multipart/form-data"表单对于没有使用enctype="multipart/form-data" 的表单参数multer也是不能处理的,所以一般mutler和body-parser配合使用,body-parser处理表单参数,而multer只处理文件



0 0
原创粉丝点击