2017年5月
Nodejs express获取POST参数值
如果有新手学习 nodejs
,获取 url post
传回的参数时,会发生和我一样的问题,今天就来解决这个小麻烦
node.js
不像 php
这种老牌后端语言有特定的获取外部参数的做法,毕竟是个新生力量,希望后来的版本能够更加便捷高效
//正常的获取值
app.get('/', (req, res) => {
console.log(req.query);
res.send('完成');
});
app.post('/', (req, res) => {
console.log(req.body);
res.send('完成');
});
正常输出的话,你的预想是这样的...
// GET请求
{
name: '冯小贤',
age: '18'
}
// 完成
或
// POST请求
{
name: '冯小贤',
age: '18'
}
// 完成
然而并不是!!!
// 两次的输出会是这样!!!
{ }
//undefined
这是因为我们这里缺少一个模块,express的中间件 body-parser
官方说明
Node.js body parsing middleware.
Parse incoming request bodies in a middleware before your handlers, available under the req.body property.
基本就是说,解析客户端请求的body中的内容,JSON编码处理和url编码处理
接下来我们就来安装 body-parser
// 安装 body-parser
npm install body-parser
// 导入 app.js
var bodyParser = require('body-parser');
app.use(bodyParser());
//这样就可以使用 req.body 来获取 post 传递来的值了
app.post('/', (req, res) => {
console.log(req.body);
res.send('完成');
});
// json就是用 app.use(bodyParser.json())
Nodejs 爬取小姐姐图片
学习没有动力,那吃枣是?的,学习 nodejs 的过程中,我来给大家一点提神醒脑的?
这里我是用了 cnodejs社区 最简单的爬虫小教程做基础改鳝,完成的
//初始化项目
npm init
//启动 app.js
node app.js
//你就可以愉♂快的玩耍了(代码见文章末尾)
如不知道如何使用 nodejs
Linux玩家可以看 我的这篇文章;Windows玩家可以直接去官网下载 .msi ,下一步下一步安装 直达车
基本的爬取思路
- 页面的分页按钮,抓到在此页出现的所有小姐姐的页面链接,存储下来
- 使用 eventproxy 来并发访问每个小姐姐的页面
- 访问的过程中,使用 cheerio(类似jquery的模块) 来匹配我们需要的图片地址 ,记录找到的所有图片地址
- http 去请求每张图片地址,保存二进制数据流
- fs将二进制数据流,输出成图片文件,文件名从原始地址提取出来
- 保存至 文件夹
这里我怕由于请求过于庞大,使用 express 构建静态页面提供 查询 和 下载,降低爬取的站点被爬死的可能性
下载地址:xjj.zip