nodejs学习

nodeJs爬取网页数据

六月ゝ 毕业季﹏ 提交于 2020-02-22 13:01:19
发现node可以爬虫,正好我在找暑期实习,然后就使用node爬一下网站数据找实习。 准备工作 安装node,npm安装依赖包[cheerio, express, eventproxy] http 和 express 模块的使用学习 爬取目标网站 //加载http模块 var http = require('http'); //目标网站,嘿嘿,这个网站有很多实习职位 var pageUrl = 'http://shixi.info/'; http.get(pageUrl, function(res) { var html = ''; res.on('data', function(data) { html += data; }); res.on('end', function() { console.log(html); }); }); http的get请求一个目标网站,回调函数的参数是response,绑定两个事件,一个'data'事件,会不断触发获取数据,数据获取完触发’end‘ 事件。 爬到的的数据就是目标网站的html源代码。 现在html代码有了,我们该怎么解析这个呢? 解析html代码 在这里我们使用cheerio模块,是服务器端的html解析模块,使用方法类型jQuery var http = require('http'); var cheerio = require

大火的前端时代,使用前端技术能实现什么?

一世执手 提交于 2020-02-21 01:14:06
什么是前后端分离,要区分前端和后端,需要有个明确的界限。一般,用户可以直接看到的东西,都是属于前端的范畴,除了前端之外都属于后端了。 在传统的像ASP,JSP和PHP等开发模式中,前端是处在一个混沌的状态中,可以说是没有独立的“人格”可言。 前端负责切图和编写静态页面模板,后端将数据渲染到前端提供的页面模板中,最后将页面渲染到浏览器展示。 这个过程中,前端只提供页面模板或者写一些JavaScript脚本,有的甚至JS脚本都是后端来写,前端的作用只局限于切图和样式模板文件,这种角色就是传说中的“切图仔”。 这也是为什么行业内都觉得前端是一个很简单的工作,只要花个一周,学下HTML、CSS和PS的简单技巧就可以胜任的工作。 现在看来,那时候的前端就是一个打酱油的,发展前景很有限。那时候的JavaScript脚本也比较简单,一个jQuery就可以横扫天下,所以对于精通语言类代码的后端程序员来说,可以很快的上手JavaScript,对前端来说,发展空间就更小了。 前后端分离,不只是简单的代码的分离。 首先是要架构上分离解耦,逐渐摆脱前后端在架构上的依赖,前后端各司其职,分开部署在不同的服务器上,通过RESTful接口传递数据。减轻后端服务器的压力,后端服务器不再负责页面渲染,只负责输入数据,吞吐量提升了好几倍。 其次是逻辑分离,不分离的时候,对于业务代码的界限很不明确

Nodejs爬取网易云音乐登录信息

限于喜欢 提交于 2020-02-08 23:00:09
Nodejs爬取网易云音乐登录信息 第一步 分析请求头 它采用的是post的方式,虽然知道了请求地址,但是不能直接请求以为它还带的一堆数据,直接请求服务器不认识不会给相应。 先抄网易的加密模块 这里需要导入一个 querystring 模块 const querystring = require ( 'querystring' ) let postData = querystring . stringify ( { 'params' : 'don2zoOC9jXzIm5ptQ+21/kAS7glvMhoqNuIaCbThY7lfSeQM3WlVYgwht3mYFga' , 'encSecKey' : '30e75b595d231b9419c700d6e180428b7aa7ef52daa7378654185e0ef35e6c6062df1418ab5203e320136e139080fcf39078a6dafd35141d2115ffd6e7e056ab4f75d3003b9ee9eb4e65851afe2343579c5f2a276fbd8e98c7dfdd6a5b31e98d6cb63fe242eb46f5bb850c5b7bb5baa1f6737b75ebb325c0493c4c09a9458aa3' } ) 下来我们把请求头抄下来 代码如下: let option = {

node报错:Nodejs Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'xx' (using password:YES)

心不动则不痛 提交于 2020-01-29 08:45:59
背景: 解决办法: ①如果是没安装mysql的支持程序,执行一下: npm install node - mysql ② 真正解决我问题的是下面这种方式: 在我输入node .\app.js 跑起来的时候就出现了背景栏的1045报错,于是找了好多资料,后面想了想,应该是数据库配置文件那里出错了,果不其然,因为别人项目数据库名、user、password是和我们不同的,然后我就更换了user和password,然后将数据库名改为我的navicat里面的自己取的名字 结果用postman测试接口返回了正确 最后,看完本篇博客后,觉得挺有帮助的话,可以继续查看专栏其它内容嗷,一起来学习Vue吧~ 点击进入Vue❤学习专栏~ 学如逆水行舟,不进则退 来源: CSDN 作者: 一百个Chocolate 链接: https://blog.csdn.net/weixin_42429718/article/details/103997475

nodejs之express4x

孤街醉人 提交于 2020-01-27 04:36:29
学习node好榜样!前阵子看了php,那个模块化编译真的好棒。然而php学习起来不是一般的记不住,毕竟和js还是有不同的。于是转移到了node。看到熟悉的js脚本,心里踏实多了。 话不多讲,php我也是要驾驭的,只是要排到后面去了。今天先来个基于node的框架之express4的模板实例 官网api:http://www.expressjs.com.cn/4x/api.html 1.首先,全局安装。 npm install -g express-generator@4 2.检测安装结果 express --version 3.创建项目,这里我选择d盘node文件夹,安装框架模板。 express -e nodeDemo 4.进入项目安装依赖 cd nodeDemo && npm install 5.运行项目,如果不知道运行命令是啥,打开项目根目录下‘package.json’文件,查看scripts对象里默认第一个的属性名,这个模板里叫start。 npm start 6.运行之后,打开项目根目录下的bin文件夹里的www.js,查看这一句代码:‘var port = normalizePort(process.env.PORT || '3000');’3000就是端口号。基于node服务器本机ip原则。在浏览器输入。 localhost:3000 或者 127.0.0.1

学习

五迷三道 提交于 2020-01-23 13:08:00
一.学习   1.这周招新的事情已经接近尾声,我也开始学新的东西了Nodejs,学的时候,发现这个nodejs真的很强大,可以自己创建一个web,并且还能实现一些该有的功能,但是在学的时候,卡在了同步异步和事件驱动上面,就是很迷惑,不知道他们的步骤是怎么来的,以及他们有什么区别。今天准备把这一块视频再看一遍,总结总结。   2.时间过得真快,马上我就是学长了,就要迎来小学弟小学妹,所以在这段时间,我要好好学习知识,巩固新的知识,要不然他们问我,我不知道就很尴尬了,先把nodejs学会,抽空把JavaScript再复习一遍,有一个博主,我感觉他总结的还可以( https://www.cnblogs.com/Mtime/p/4962036.html );   3.昨天和室友一起吃饭,他在和我说二级的事,我突然意识到,如果9月份的我没考,我只能等到明年3月份,而且如果不过的话,只能大三考,还有12月份英语四级如果不报的话,大三我的压力就会大得多,发现时间真的不够用,我应该要好好规划一下,把该拿的证在大二全部拿下,大三就好好考虑自己的方向。 二.生活   1.前几天学长学姐验收我们的海报,对我们的海报提出了一点意见,说做的还行,就有一种成就感,自己做出来的东西,被人认可为还行,自己内心的荣誉感肯定会有;   2.这几天突然想买键盘和支架,就在网上物色了好多,还是拿不定主意,就去询问我哥

Nodejs - 如何用 eventproxy 模块控制并发

混江龙づ霸主 提交于 2020-01-20 08:56:53
本文转载自: Nodejs - 如何用 eventproxy 模块控制并发 --------- 韩子迟 本文目标 本文的目标是获取 ZOJ 1001-1010 每道题 best solution 的作者 id ,取得数据后 一次性输出 在控制台。 前文 如何用 Nodejs 分析一个简单页面 我们讲了如何用 Nodejs 简单地对一个页面进行分析,我们再来理一理,温故而知新。首先,我们的目标是能输出在页面上,这时我们就需要 http 模块,或者封装了 http 模块的 express 模块。其次我们需要获取博客园首页的页面代码,就要发送 http 请求,而 superagent 模块正是我们所需要的。最后我们要对获取的页面代码进行分析, cheerio 模块能让我们用类似 jQuery 的语法对页面进行解析,何止一个爽字了得! 实践 再看今天我们的任务,粗看之下,少了输出在页面这个条件(不需要用 http 甚至 express 模块了),而需要输出每道题的 best solution 的作者 id,似乎并不是很难,我们来分析下 1001 这道题的 提交统计页面 ,很显然第一条就是最佳 solution 嘛,我们像前面一样用 SuperAgent 模块请求该页面,然后用 cheerio 模块进行解析,不就大功告成了?!什么,要解析 10 个页面?那就发送 10 次 http 请求喽!

Nodejs学习计划

半城伤御伤魂 提交于 2020-01-20 01:29:02
此文章已经发表于本人 博客 。 由于公司要求这段时间在学习Nodejs,基本靠自摸一路走来踩了很多坑浪费很多时间,今天就来这里说下,顺便计划一下接下来的学习计划,目前自己做个 博客 ,项目过程中学习了js类以及对象、Nodejs相关模块(http、fs)、express框架、mongodb以及一些第三方的插件比如数据库mongoose(mysql还未开始),也建立了数据底层的伪仓储,接下来: 目前想这个博客做的差不多了,就重构下,采用controllers --> Lgoic --> Repository --> Mongose(Mysql) 再次封装数据访问层,这里可能不会再使用mongoose模块了,直接纯js操作数据库,这样更有利于封装查询了解其命令以及原理; 实现数据库工厂,可以采用mysql或者mongodb; 日志功能集成express框架,目前是这样想的,因为express框架本身有日志,只是不会写数据库到时候看看怎么搞; 数 据结构采用VM --> DO --> Model;原因是这样的由于目前发现底层的Schema的model在整个项目中使用会有不方便,所以这里干脆底层使用Model,逻辑层部分采用 DO,传递给页面使用VM(View Model)这样更有利于分化。这种方法就不知道nodejs下有没有像java以及.NET一样的Map对象的工具库了,有的话就好了。

Nodejs loopback框架笔记(二):在.js文件中使用本项目模型的资料或方法 && 请求其他loopback框架项目方法

那年仲夏 提交于 2020-01-19 00:58:46
我们使用loopback框架的时候,我们可能会有以下需求 1、在本项目某些.js文件中,需要请求本项目模型的资料或方法 2、在本项目某些.js文件中,需要请求其他项目模型的资料或方法 1、在本项目某些.js文件中,需要请求本项目模型的资料或方法 直接上代码 var app = require ( '../server' ) ; // meetinginfo是我创建的模型,find是模型内置的查询方法,括号里面的是过滤器,感兴趣的可以去loopback官网学习 const data = await app . models . meetinginfo . find ( where : { year : weekData . year , week : weekData . week } } ) ; 2、在本项目某些.js文件中,需要请求其他项目模型的资料或方法 ① 需要下载插件 loopback-nodejs-client,下载cmd命令如下 npm install loopback - nodejs - client -- save ② 上代码 // 获取插件loopback-nodejs-client var LoopbackClient = require ( 'loopback-nodejs-client' ) ; // 'http://10.62.**.**:****

Nodejs 学习系列

不羁的心 提交于 2020-01-17 08:21:54
Nodejs学习计划(后续学习过程中可能会有变化,会实时更新…) 计划如下: Nodejs 整体介绍 Nodejs http模块、url模块、path模块、supervisor工具使用 Nodejs 自定义模块 CommonJs 和 Nodejs 模块、npm、自定义模块 Nodejs中的fs模块 Nodejs中 async await 处理异步 Nodejs fs中的流以及管道流 Nodejs的非阻塞IO、异步以及 事件驱动EventEmitter解决异步 创建一个静态WEB服务器 Nodejs WEB服务器 静态文件托管、 GET POST路由 EJS模板引擎 Nodejs 路由封装(类似express框架的路由) express框架的入门 Nodejs操作数据库(mongodb/mysql) koa2框架入门 再谈 nodejs非阻塞I/O、事件驱动 来源: CSDN 作者: 还差一个昵称~ 链接: https://blog.csdn.net/weixin_42159569/article/details/103984367