UDN-企业互联网技术人气社区

板块导航

浏览  : 1159
回复  : 2

[Nodejs] Node.js的nodegrass网页请求模块

[复制链接]
小辫儿的头像 楼主
发表于 2017-2-7 10:41:16 | 显示全部楼层 |阅读模式
  Node.js的网页请求有官方提供的的http模块,但是用起来过于繁琐与复杂,所以有了第三方基于http封装的nodegrass模块,简单易懂,方便使用。

  nodegrass是什么?

  模块开发者的介绍是:nodegrass is a tool to process client request for Node.js,翻译过来就是nodegress是为Node.js处理客户端请求的工具。是对Node.js官方提供的http模块的二次处理封装,使Node.js更加的易于使用,下面我们就来看看nodegrass的用法。

  安装

  首先是nodegrass的安装方法,可以直接使用npm安装,建议安装在项目文件夹里:
  1. npm install nodegrass -save
复制代码

  使用

  然后就介绍Node.js的使用了。

  下面是开发者提供的Demo,首先是get请求:
  1. //get request
  2. var nodegrass = require('nodegrass');
  3. nodegrass.get("https://github.com",function(data,status,headers){
  4.     console.log(status);
  5.     console.log(headers);
  6.     console.log(data);
  7. },null,'utf8').on('error', function(e){
  8.     console.log("Got error: " + e.message);
  9. });
复制代码

  首先 require 加载模块,然后就可以直接使用了。这里是get的 https://github.com 网站

  post请求
  1. var ng=require('nodegrass');
  2. ng.post("https://API.weibo.com/oauth2/access_token",function(data,status,headers){
  3. var accessToken = JSON.parse(data);
  4.         var err = null;
  5. if(accessToken.error){
  6.              err = accessToken;
  7. }
  8. callback(err,accessToken);
  9. },headers,options,'utf8');
复制代码

  post方法相比get方法多提供了headers请求头参数,options–post的数据,它们都是对象字面量的类型:
  1. var headers = {
  2.     'Content-Type': 'application/x-www-form-urlencoded',
  3.     'Content-Length':data.length
  4. };
  5. var options = {
  6.          client_id : 'id',
  7.      client_secret : 'cs',
  8.      grant_type : 'authorization_code',
  9.      redirect_uri : 'your callback url',
  10.      code: acode
  11. };
复制代码

  利用nodegrass做代理服务器?……**

  看例子:
  1. var ng = require('nodegrass'),
  2. http=require('http'),
  3. url=require('url');
  4. http.createServer(function(req,res){
  5.     var pathname = url.parse(req.url).pathname;
  6.     if(pathname === '/'){
  7.         ng.get('http://foreverz.cn/',function(data){
  8.             res.writeHeader(200,{'Content-Type':'text/html;charset=utf-8'});
  9.             res.write(data+"\n");
  10.             res.end();
  11.             },'utf8');
  12.         }
  13. }).listen(9000);
  14. console.log('server listening 9000...');
复制代码

  就这么简单,当然代理服务器还有复杂的多,这个不算是,但至少你访问本地9000端口,看到的是不是博客主页呢?

相关帖子

发表于 2017-2-7 10:41:48 | 显示全部楼层
JavaScript依赖于浏览器本身,与操作环境无关,只要计算机能运行浏览器,并支持JavaScript的浏览器,就可正确执行,从而实现了“编写一次,走遍天下”的梦想。
使用道具 举报

回复

发表于 2017-2-7 10:41:49 | 显示全部楼层
JavaScript依赖于浏览器本身,与操作环境无关,只要计算机能运行浏览器,并支持JavaScript的浏览器,就可正确执行,从而实现了“编写一次,走遍天下”的梦想。
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部