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库封装代码
}
})
网友评论