对前端发送的请求进行处理
处理get请求
/**
* 获取文章信息
*/
app.get('/article/info', function (req, res) {
>>> 获取请求参数
var arg = qs.parse(url.parse(req.url).query);
var id = arg.id;
>>> 链接数据库根据参数查找文档并返回
db.collection('articleList').find({ "_id": ObjectId(id)}).toArray(function(err, result) {
if (err) throw err;
console.log(result)
res.end(JSON.stringify(result))
});
});
以上代码就实现了对一个get请求的处理,通过参数模块获取了url的参数,db也就是已经连接的数据库。根据ID对‘articleList'的数据表进行搜索,处理完毕后 通过res.end()返回数据结束响应。
处理post请求
/**
* 提交留言信息
*/
app.post('/board/post', function (req, res) {
>>>> 获取请求参数
var data = {
date: req.body.date,
name: req.body.name,
content: req.body.content,
time: req.body.time,
position: req.body.position
};
>>> 链接数据库并插入数据
db.collection('board').insert(data, function(err, result) {
if(err) {
res.end('Error:'+ err)
}
res.end('提交成功')
});
});
post请求的参数获取和get不同 可以直接通过req.body去获取前端传输的请求体。通过js对象的方式去获取参数。然后根据参数执行数据库操作。到此,基本的请求也就介绍完毕了。下面说下怎么处理图片的上传此类常见的文件操作需求。
对前端的文件请求进行处理
为了简化操作,我们可以引入multer模块来处理文件,代码如下
var multer = require('multer');
var storage = multer.diskStorage({
//设置上传后文件路径,uploads文件夹会自动创建。
destination: function (req, file, cb) {
cb(null, './public/uploads')
},
//给上传文件重命名,获取添加后缀名
filename: function (req, file, cb) {
var fileFormat = (file.originalname).split(".");
cb(null, file.fieldname + '-' + Date.now() + "." + fileFormat[fileFormat.length - 1]);
}
});
//生成上传模块,让API调用
var upload = multer({
storage: storage
}).single('file');
以上代码就成功引入了文件上传模块,通过该模块我们可以快速生成相应内容,具体使用方法可以查看官方文档。准备工作完成后,在项目中使用:
/**
* 图片上传
*/
app.post('/upload', function (req, res) {
upload(req, res, function (err) {
if (err) {
console.log(err)
return
}
console.log(req.file)
res.end(JSON.stringify(req.file))
})
});
//图片上传到服务器 ,向客户端返回文件信息
比如文件的存储位置,之后就可以通过地址访问服务器的图片
/**
* 图片删除
*/
app.post('/image/delete', function (req, res) {
fs.unlink(req.body.path, function(err) {
if (err) {
return console.error(err);
}
res.end("文件删除成功!");
});
});
内容版权声明:除非注明,否则皆为本站原创文章。
