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

进击Node.js基础(一)

Scott 全栈工程师
难度中级
时长 3小时27分
学习人数
综合评分9.50
664人评价 查看评价
9.8 内容实用
9.4 简洁易懂
9.3 逻辑清晰
  • 2017年6月29日,学习本节课程,对学习中遇到的问题进行记录,环境windows 全部代码按照视频编写完成后运行出现问题: 1.var cheerio = require('cheerio'); 问题:使用控制台,在本地node安装目录下使用npm install cheerio 安装cheerio,但在运行代码是显示找不到cheerio模块 解决方法:因为cheerio.js放在nodejs安装目录中的nodel_modules中,与代码不在同一文件夹下,所以在require(中填写绝对路径)后不报错,(ps:在网上搜索可以配置环境变量,暂未进行配置) 2.var chapters = $('.learnchapter'); 因为课程录制时间较早,所以慕课网的class变为chapter 3.var video = $(this).find('.studyvideo'); 因为课程录制时间较早,所以慕课网的class变为J-media-item 4.在代码中感觉有太多for循环的嵌套感觉如果数据过多,会消耗很多时间,但因为我现在属于小白阶段,所以暂时没有好的方法解决
    查看全部
    5 采集 收起 来源:HTTP 小爬虫

    2017-06-29

  • 在nodejs中可以通过文件路径或文件名来引入模块,如果用名称引用非核心模块的话,node最终会把模块映射到对应的模块文件的路径,那些包含了核心函数的核心模块会在node启动时被预先加载。非核心模块包括使用npm安装的第三方模块或自己创建的本地模块。 nodejs模块分类:
    查看全部
    5 采集 收起 来源:模块的分类

    2017-01-03

  • Node-Webkit,appjs :允许用户使用html/css/javascript开发跨平台桌面应用程序,并且兼容Linux,Windows Jade:和Nodejs组合使用,方便高校管理后台html模板 Gost:开元博客程序 Grunt:Javascript跑各种任务的工具,完成样式工具,语法检查,自动化测试等任务 gulp: 和grunt功能相似,不过配置比较简单 Express.js: Nodecast: Log.io:实时监控项目日志 PDFKit:生成文档 Haroopad:Linux上的MarkDown在编辑器 NoduinoWeb:控制开源硬件 NodeOS:操作系统 学习的相关网站 1、nodejs.org 看nodejs的版本升级,新特性的加入,重要bug的修复等,api变化,功能变化-未来发展趋势, 2、www.npmjs.com 模块社区,看他人源代码,学习理念 3、github.com 开源项目和源码 4、stackoverflow.com 技术解答社区,查询相关资源,环境配置,异常解决方法等
    查看全部
  • 在nodejs中文件和模块是一一对应的 模块类型: 1核心模块 2本地模块 3通过npm安装的第三方模块 引用模块的方式 1用文件路径引用 2用模块名来引用 如果用名称引用非核心模块的话 node就会把模块名映射到对应模块名的路径 包含了核心函数的模块会在node启动时预先加载 非核心模块就是使用npm安装的第三方模块 或者其他人创建的模块
    查看全部
    5 采集 收起 来源:模块的分类

    2016-09-30

  • 1. 什么是回调? 回调是异步编程时的基础,将后续逻辑封装成起始函数的参数,逐层嵌套 2. 什么是同步/异步? 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。 3. 什么是I/O? 磁盘的写入(in)磁盘的读取(out) 4. 什么的单线程/多线程? 一次只能执行一个程序叫做单线程 一次能执行多个程序叫多线程 (正常恋爱与脚踏n条船) 5. 什么是阻塞/非阻塞? 阻塞:前一个程序未执行完就得一直等待 非阻塞:前一个程序未执行完时可以挂起,继续执行其他程序,等到使用时再执行 (一直排队和拿号排队的区别) 6. 什么是事件? 一个触发动作(例如点击按钮) 7. 什么是事件驱动? 一个触发动作引起的操作(例如点击按钮后弹出一个对话框) 8. 什么是基于事件驱动的回调? 为了某个事件注册了回调函数,但是这个回调函数不是马上执行,只有当事件发生的时候,才会调用回调函数,这种函数执行的方式叫做事件驱动~这种注册回调就是基于事件驱动的回调,如果这些回调和异步的I/O操作有关,可以看作是基于回调的异步I/O,只不过这种回调在nodejs中是有事件来驱动的 9. 什么是事件循环? //事件循环Eventloop,倘若有大量的异步操作,一些I/O的耗时操作,甚至是一些定时器控制的延时操作,它们完成的时候都要调用相应的回调函数,从而来完成一些密集的任务,而又不会阻塞整个程序执行的流程,此时需要一种机制来管理,这种机制叫做事件循环. 总而言之就是:管理大量异步操作的机制叫做事件循环 Event Loop: 回调函数队列。异步执行的函数会被压入这个队列; 队列被循环查询。 Event Emitter: 事件发生器,产生事件
    查看全部
  • 通过自己的理解这些问题 1.回掉,即后续处理的函数作为参数出现在前驱函数中,对前驱函数中的一些操作进行处理 去医院看病,得先去挂号,不管你是去看腰腿胳膊心肝肾,挂完号才能去对应的科室。如此你要挂号,是你要挂什么病,挂完就去看病,如果把看病当做参数给挂号,看病这件事就是回掉 2.同步与异步 挂号可以让票贩子挂自己回家睡觉,挂号这件事就是异步的 如果是非要自己半夜排队,那挂号这件事就是同步的 //同步 打电话 等待 查询 返回结果 挂电话 <br> //异步 打电话 留号码 说明查询 挂电话 出结果 回电话 完成<br> //同步 下载 等待 完成 看片儿<br> //异步 下载a 下载b 下载c 下载完播放提示音看片儿 顺序不定<br> 3.单线程/多线程 今天周日,人多,但是你还是一个人给自己挂号,你就是单线程的 本周日,漩涡鸣人用多重影分身给自己挂号,鸣人就是多线程的 4.i/o 磁盘的写入 挂号的时候护士把你的信息录入,这就是写入 磁盘的读出 你挂完号去看病,轮到你了,医生把你的信息调出来,82岁 未婚, 哦,大龄单身狗啊,这就是读出 5.阻塞/非阻塞 医生告诉你你得好好检查检查,然后对你一阵敲敲打打,你啥也干不了,只能被动享受,你就被阻塞了 医生拍个片子就让你滚回家,说看看,过两天电话通知你结果,你想干啥就干啥,你就是非阻塞的 6.事件/事件驱动<br> 医生过两天打电话告诉你,你得了蛋疼得切病,让你去医院,你就得去医院,这就是事件驱动 医生过两天打电话告诉你,你这玩意没切完,你又得去医院,这也是事件驱动 过两天医生告诉你不用切了,推荐你做变性手术,你没去,这事算完 ,ok 医生给你电话就是事件,你接到电话去医院也好,不去也罢,你一直被电话驱动着 7.事件循环 队列 你去挂的诊室有点多,有切蛋蛋的,有切咪咪的,有治疗菊花的,你的电话一个接一个,你有分身乏术,就按照取得顺序和执行时间拍了个顺序,顺便挂点其他的课科室,就这样 周一接电话去切蛋蛋,周二切咪咪,周三挂个前列腺号,前列腺一生的电话也留着监听监听,周四治菊花,周五本来说挂个号,但是周三前列腺的医生说你得去检查检查,你就去了,本来要挂的治疗没蛋也疼的只好拖到下周一了
    查看全部
  • 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')
    查看全部
  • cat /etc/redhat-release查看版本<br> rpm -q gcc rpm -q gcc-c++查看是否安装了gcc和gcc-c++ 安装 yum -y install gcc gcc-c++ kernel-devel python -V查看版本 yum -y update && yum -y groupinstall "Development Tools" cd /usr/src/ wget https://nodejs.org/dist/v4.4.3/node-v4.4.3.tar.gz tar -xf node-v4.4.3.tar.gz cd node-v4.4.3 ./configure make sudo make install node -v查看版本号
    查看全部
  • 1..请求已接收,正在处理 2,,请求接受成功,处理完成,成功返回,200=0k 3,,重定向 4,,客户端错误,400 有语法错误不能理解,401请求未授权,403拒绝提供服务,404 未找到改地址 5,,服务器端错误,500服务器发生未知错误,503服务器端当前不能处理
    查看全部
  • 这个ab -n1000 -c10 http://localhost:2015/命令,在window系统下,需要先用cd命令定位到你的apache安装目录的bin文件夹。。。 并且我在powershell中运行的,需要打成.\ab才能运行。。。。
    查看全部
    4 采集 收起 来源:HTTP 性能测试

    2015-06-30

  • nodejs的运行 首先要在你的电脑上下载node.js并安装,大家可以去官网下载 1、第一种方法:像老师介绍的那样,去官网下载git,安装好后,在桌面上单击鼠标右键,会有一个Git Bash Here,然后在新建一个文件,可以命名为server.js,在这个文件的文件夹上右击,然后单击Git Bash Here,就会进入server.js的环境,可以在这里运行node server,js 2、第二种方法是用命令行进入到server.js的文件夹,给大家介绍一种简单的方法,不用找它的路径,在server.js的文件夹上单击右键同时按住shift键,会看到有"在此处打开命令窗口",点击它就可以了,接着输入node 文件名。 3、第三种方法就是在sublime中配置nodejs的环境,在本地运行,首先去https://github.com/tanepiper/SublimeText-Nodejs这里下载,然后再配置,https://my.oschina.net/ximidao/blog/413101(配置教程)配置好后直接在sublime中按ctrl+b var http = require('http'); http.createServer(function(req,res){ res.writeHead(200,{'Content-Type':'text/plain'}); res.end('Hello World\n'); }).listen(1337,'127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); 通过creatServer来创建一个web服务器,然后通过listen让服务器在1337端口监听请求,服务器就已经ready,然后就能收到任何来自端口的请求,当请求进来的时候,我们机告诉node.js下一步应该做什么,于是给creatServer传入一个匿名的回调函数,同时给它传入2个参数,分别是请求体和响应体
    查看全部
  • 一、node的api 1.url: 绝对URI http://user:pass@www.example.com:80/dir/index.html?uid=1#ch1 协议 登录信息 服务器地址 端口 文件路径 查询字符串 片段标示符 URI :Uniform Resource Identifier,统一资源标识符; URL:Uniform Resource Locator,统一资源定位符; URN:Uniform Resource Name,统一资源名称。 其中,URL,URN是URI的子集。 url.parse(urlString,bool,bool): 将定位符解析成对象, 第二个参数决定query部分以字符串返回还是以对象形式返回,默认为字符串返回即第二个参数默认为false; 第三个参数表示在没有完整协议串的时候(即无http:/https:)的时候‘//’之后的字符如何解释,若为false即将‘//’之后的当做路径解释,若为true则会将‘//’与‘/’之间的字符串解释为主机 Url基础指点: protocol:表示url采用的什么协议 slashes:表示是否有斜线 host:表示主机 post:表示端口(默认80端口不显示) hostname:表示主机名称 hash:指的是#号后的内容包含#<br>(锚点) search:指的是?后#前的内容,包含?(查询字符串参数) query:指的是search不包含?的内容(给http服务器发送数据) pathname:指的是路径名称,一般指主域名之后的内容('/返回自己的路径名/') path:路径 href:代表未解析的url地址 参数可选参数1设置为true,对象中query解析出, 可选参数2设置为true,对象中host正确解析,pathname正确解!!!协议protocal未明确。 1)url.format(urlObj): 将对象解析成定位符(也就是URL) 2)url.resolve(from, to):将一个基本URL和指定超链接目标URL合并
    查看全部
  • http的get和request可以从后台发起一个http的请求,从而可以获取远程的资源,从而更新和同步远程的资源。request接收两个参数,一个是options,一个是回调函数callback(回调函数是一个可选的参数,可加可不加),通过回调函数可以接收到远端服务器的使用术语,也就是response,第一个参数可以是一个字符串(若是字符串,会通过URL的parse方法解析为一个对象),也可以是一个对象。如果第一个参数是对象的话就可以进行一系列的配置,来定制我们需要发出的请求格式。上图就罗列了比较常用的参数,比如host等。这么多的参数其实不是每一个都要传递,大部分是默认的,我们传递的就是主机、端口、请求头和论证。 网站视频举例:用request()进行技术灌水。 对于某个网站(如慕课网)来说,一个请求是否合法、是否符合要求,就要看请求的路径对不对,然后请求头Header的信息能不能对应得上。 http.get()方法与 http.request() 唯一的区别是它设置请求方法为 GET 且自动调用 req.end()。
    查看全部
  • 通过creatServer来创建一个web服务器,然后通过listen让服务器在1337端口监听请求,服务器就已经ready,然后就能收到任何来自端口的请求,当请求进来的时候,我们机告诉node.js下一步应该做什么,于是给creatServer传入一个匿名的回调函数,同时给它传入2个参数,分别是请求体和响应体
    查看全部
  • Nodejs中http模块不解析请求的具体内容,只分离出请求头和请求体 1、什么是回调函数? 回调试异步编程时的基础,将后续逻辑封装成起始函数的参数,逐层嵌套 2、什么事同步/异步? 同步:发送方发送数据后,等待接收方发回响应以后才发下一个数据包的通讯方式 异步:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式 3、什么事I/O? 磁盘的写入(in)磁盘的读取(out) 4、什么是单线程/多线程? 一次只能执行一个程序叫做单线程 一次能执行多个程序叫做多线程 5、什么是阻塞/非阻塞? 阻塞:前一个程序未执行完就得一直等待 非阻塞:前一个程序未执行完时可以挂起,继续执行其他程序,等到使用时再执行 6、什么是事件? 一个触发动作(例如点击按钮) 7、什么是事件驱动? 一个触发动作引起的操作(例如点击按钮后弹出一个对话框) 8、什么是基于事件驱动的回调? 为了某个事件注册了回调函数,但是这个回调函数不是马上执行,只有当事件发生的时候,才会调用回掉函数,这种函数执行的方式叫做事件驱动~这种注册回掉就是基于事件驱动的回调,如果这些回调和异步I/O(数据写入、读取)操作相关,可以看作是基于回调的异步I/O。只不过这种回调在nodejs中是有事件来驱动的 9、什么是事件循环? 事件循环Eventloop,倘若有大量的异步操作,一些I/O的耗时操作,甚至是一些定时器控制的延时操作,它们完成的时候都要调用相应的回调函数,而从完成一些密集的任务,而又不会阻塞整个程序执行的流程,此时需要一种机制来管理,这种机制叫做事件循环 总而言之,管理大量异步操作的机制叫做事件循环 EventLoop: 回调函数队列,异步执行的函数会被压入这个队列;队列被循环查询。
    查看全部

举报

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

微信扫码,参与3人拼团

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

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