06_node.js下的express中的post

express中的post

我们一般使用  body-parser  第三方 模块  来获取到post提交的数据

(不能上传图片)

1、首先我们应该安装

npm install body-parser --save;

2、再引入

var bodyParser = require("body-parser");

3、配置中间件

app.user(bodyParser.urlencoded({ extended:false;}))

app.use(bodyParser.json())

4、最后使用req.body  可以获取到数据如

{ username: '111', age: '11', classname: '111', sex: '1' }

这些数据都是在  form表单中用 method="post" 传出

同时  input 中必须 设置  name=""  name里面的值就是 获取的对象中的属性名 username

如  name="names"  = > {names:111}

name="usernames"  = > {usernames:111}

如注册的实现

var data = req.body;

我们可以用post提交数据,然后连接数据 再用

bd.collection("vip"). insertOne(data,function(err){})  把post的数据提交到数据之中

或者是 用户发布活动 同样的插入数据库方法 ,我们可以再根据查询所有数据的数据,把活动数据

渲染在ejs页面上

var  result = db.collection("vip").find();

result.toArray(function(err,data){

if(err){

}

然后再用 (data就是  activity表中的所有数据)格式为[{},{},{}]

res.render("activity",{

list:data

})

})

最后我们可以在ejs上 用for循环来获取数据

<%for(var i =0; i < list.length; i++){%>

<%=list[i].title%>

<%}%>

这样就完成了一个简单 发布,显示的功能



2、post  可以上传图片  multiparty

//1、先安装

    npm install multiparty --save;

//2、引入

    var multiparty  =  require("multipary");

// 3、建立一个public 文件夹 在这里文件夹下建立 upload文件夹

//4、 必须在你要post的form表单中加上enctype="multipart/form-data"

//地址路由根据自己的文件布局来设置

app.post("/addpost",function(req,res){

    var form =new multiparty.Form();

    form.uploadDir = "public/upload";

    form.parse(req,function(err,fiedls,files)){

//图片上传用 files  其他用fiedls 自己可以console.log()打印出来看看

    varcid = fields.cid[0]; //有不同的分类时需要

    vartitle = fields.title[0];

    varcontent = fields.content[0];

    vardescription = fields.description[0];

//var addtime = new Date();

//用安装,引入  data-time模块 去npm.js下载

    varaddtime = dateTime({date:newDate()});

    varstatus = fields.status[0];

    varimg = files.img[0].path;

    var json = {cid,title,content,description,addtime,status,img}

//然后可以用 insert方法  可以看DB库封装代码

}

})

你可能感兴趣的:(06_node.js下的express中的post)