为了账号安全,请及时绑定邮箱和手机立即绑定

进击Node.js基础(一)

Scott 全栈工程师
难度中级
时长 3小时27分
学习人数
综合评分9.50
664人评价 查看评价
9.8 内容实用
9.4 简洁易懂
9.3 逻辑清晰
  • process node js 独有的属性
    查看全部
  • Events a.EventEmitter支持多个事件监听,最大为10,也可以自定义最大数 //添加监听 var EventEmitter = require('events').EventEmitter; var instance = new EventEmitter(); instance.on('event',function(arguments){}); b.如果超过十个也能执行,不过有可能会造成内存泄漏 //自定义最大数 //每个setMaxListeners针对的是一个特定事件:即event1,event2,... 默认最大都为10,本例为num instance.setMaxListeners(num); c.事件监听之后,需要emit(发射,发出)才会执行 instance.emit('event',arguments) d.判断是否监听 boolean instance.emit('event',arguments) //true or false e.移除监听事件 //移除单个事件监听 instance.removeListener('event',funcName) //移除事件需具名函数,匿名函数不行 //移除多个事件监听 instance.removeAllListerner() //不传参表示移除所有事件监听 instance.removeAllListerner('event') //移除特定event的所有事件监听 f.计算事件监听数量 //第一种 instance.listeners('event').length //第二种 EventEmitter.listenerCount(instance,'event')
    查看全部
  • protocol------底层使用协议 slashes-------是否有协议双实线 host----------域名 port----------端口 hostname------主机名 hash----------哈希值 search--------查询字符串参数 query---------发送给http协议的数据(等号分隔开的键值为字符串) pathname------访问资源路径名 path----------路径 href----------完整超链接 > url.parse('http://imooc.com:8080/course/list?from=scoot&course=node#floor1') Url { protocol: 'http:', slashes: true, auth: null, host: 'imooc.com:8080', port: '8080', hostname: 'imooc.com', hash: '#floor1', search: '?from=scoot&course=node', query: 'from=scoot&course=node', pathname: '/course/list', path: '/course/list?from=scoot&course=node', href: 'http://imooc.com:8080/course/list?from=scoot&course=node#floor1' }
    查看全部
  • nodejs 运行环境
    查看全部
  • function filterChapters(html){ var $ = cheerio.load(html) var chapters = $('.chapter') var data = [] chapters.each(function(){ var chapter = $(this) var chapterTitle = chapter.find('strong').text() var videos = chapter.find('.video').children('li') var item = { chapterTitle: chapterTitle, videos:[] } videos.each(function(){ var title = $(this).find('a').text() var id = $(this).find('a').attr('href').split('video/')[1] var video = { title:title, id:id } item.videos.push(video) }) data.push(item) }) return data } function printChapters(data){ data.forEach(function(item){ console.log(item.chapterTitle + '\n') item.videos.forEach(function(video){ console.log(' 【' + video.id + '】' + video.title) }) }) }
    查看全部
    0 采集 收起 来源:HTTP 小爬虫

    2016-12-27

  • var http = require('http') var cheerio = require('cheerio') http.get('http://www.imooc.com/learn/348',function(req,res){ var html = '' req.on('data',function(data){ html += data }) req.on('end',function(){ var data = filterChapters(html) printChapters(data) }) }).on('error',function(){ console.log('请求出错') });
    查看全部
    0 采集 收起 来源:HTTP 小爬虫

    2016-12-27

  • HTTP头和正文
    查看全部
    0 采集 收起 来源:HTTP知识先填坑

    2016-12-27

  • function filterChapters(html){ var $ = cheerio.load(html) var chapters = $('.chapter') var courseData = [] chapters.each(function(item){ var chapter = $(this); var chapterTitle = chapter.find('strong').text().replace(/[\r\n]*[ ]*/g,""); var videos = chapter.find('.video').children('li'); var chapterData = { chapterTitle:chapterTitle, videos:[] } videos.each(function(){ var video = $(this).find('.J-media-item'); var videoTitle = video.text().replace(/[\r\n]*[ ]*[开始学习]*(\(\d+:\d+\))?/g,"") var id = video.attr('href').split('video/')[1]; chapterData.videos.push({title:videoTitle,id:id}) }) courseData.push(chapterData); }) return courseData; }
    查看全部
    0 采集 收起 来源:HTTP 小爬虫

    2018-03-22

  • 序列化:querystring.stringify() 反序列化:querystring.parse() 转义:querystring.escape() > querystring.escape('<哈哈>') '%3C%E5%93%88%E5%93%88%3E' 反转义:querystring.unescape() > querystring.unescape('%3C%E5%93%88%E5%93%88%3E') '<哈哈>'
    查看全部
  • url.format(urlObj): 将url对象解析成url地址
    查看全部
  • url.parse 方法 将一个url地址解析成了url对象 Url基础指点: protocol:表示url采用的什么协议 slashes:表示是否有斜线 host:表示主机 post:表示端口(默认80端口不显示) hostname:表示主机名称 hash:指的是#号后的内容包含#<br>(锚点) search:指的是?后#前的内容,包含?(查询字符串参数) query:指的是search不包含?的内容 pathname:指的是路径名称,一般指主域名之后的内容 path:路径 href:代表未解析的url地址
    查看全部
  • nodeJs 分化成两条支线
    查看全部
  • nodejs中exports与module.exports的区别 http://www.cnblogs.com/pigtail/archive/2013/01/14/2859555.html 其实,Module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是Module.exports而不是exports。 所有的exports收集到的属性和方法,都赋值给了Module.exports。当然,这有个前提,就是Module.exports本身不具备任何属性和方法。 如果你想你的模块是一个特定的类型就用Module.exports。如果你想的模块是一个典型的“实例化对象”就用exports。 前面已经提到module.exports是真正的接口,exports只不过是它的辅助工具。推荐使用exports导出,除非你打算从原来的“实例化对象”改变成一个类型。
    查看全部
  • @模块的流程 创建模块 => 入口js文件,加入特定的功能 导出模块 => 把功能和文件名也就是模块名建立关系 加载模块 => 在其他文件里面引入并加载这个模块 使用模块 => 直接调用模块中命名好的方法
    查看全部
  • @模块的分类 模块类型分为三类: =>核心模块 =>文件模块 =>第三方模块 在nodejs中文件和模块是一一对应的 引用模块的方式 1用文件路径引用 2用模块名来引用 如果用名称引用非核心模块的话 node就会把模块名映射到对应模块名的路径 包含了核心函数的模块会在node启动时预先加载 非核心模块就是使用npm安装的第三方模块 或者其他人创建的模块
    查看全部
    3 采集 收起 来源:模块的分类

    2018-03-22

举报

0/150
提交
取消
课程须知
我们的教程面向的同学是:有 JavaScript 基础的同学,如果有过任何后台语言开发的经验更适合,对于有基础的同学,可以快进跳着看教程,不必拘束于每一分钟都听,很多时候其实是思路,思路打通了,很多技术细节也就不用纠结了。
老师告诉你能学到什么?
从 Node.js 基础知识入手,比如安装,环境配置、开发环境等,进一步熟悉 Node.js API ,一些 HTTP 知识,并且对模块的概念和使用更加熟悉,从而进阶到模块或者插件的开发,最终能够借助 Node.js 快速实现特定的需求。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!