Skip to content

Latest commit

 

History

History
54 lines (46 loc) · 2.05 KB

README.MD

File metadata and controls

54 lines (46 loc) · 2.05 KB

express输出数据

test02目录复制出一个目录test03,我们利用express启动一个http服务,展示爬虫分析的数据,将第2节写的简单的express应用的app.js,移动到 test03目录。由于之前express 安装时没有记录到package.json 所以这次我们把他装到package.json这个文件里面去,输入

$ npm install express --save

接着 我们修改 app.js文件,首先引入spider.js

// 引入爬虫模块
var spider = require('./spider');

然后给express 增加一个路由,里面调用spider里面的函数,返回数据给客户端

app.get('/douban', function(req, res) {
  // 执行爬取电影
  spider.spiderMovie(1, function (err, data) {
    if(err) {
      // 如果发生错误 就向客户端抛出 http status code 500
      return res.json({error: 'error'}).status(500);
    }
    return res.json(data);
  });
});

接着我们启动http服务 node app.js 然后访问 http://localhost:3000/douban 就能看到第一页的电影数据了。

那么问题来了,如果我还想查看其他页的数据,那么我们加入可变的参数

// 可以获取path 中的值 :num
app.get('/douban/:num', function(req, res) {
  // 获取客户端传入的值
  let num = req.params.num || 1;
  spider.spiderMovie(num, function (err, data) {
    if(err) {
      // 如果发生错误 就向客户端抛出 http status code 500
      return res.json({error: 'error'}).status(500);
    }
    return res.json(data);
  });
});

接着我们启动http服务 node app.js 然后访问 http://localhost:3000/douban/1 就能看到第1页的电影数据了。 http://localhost:3000/douban/2 就能看到第2页的电影数据了。

最后

我们以这个项目项目锻炼了 NodeJs项目的组织方式,以及第三方模块使用的知识。

如果你想更深入了解 推荐一篇文章