
Node.js
Lawliet_ZMZ
ACMERandNODER
展开
-
开源一个自动录制直播上传投稿的项目
其实idea一两年前就有了,最近才发力完善出来,现在主要和两个学弟在维护,也感谢@ForgQi大佬一直以来的帮助。项目链接:此文其实主要的目的是将此项目收录在互联网爬虫中。。便于其他人搜索关键词时能定位到该项目。github链接:链接,对您有帮助的话求个star欢迎PR成为Contributor!StreamerHelper???? Never miss your Streamer againIntroduction主播直播助手,部署后,后台批量监测各个平台主播是否在线,并实时录原创 2020-08-04 10:58:04 · 2112 阅读 · 0 评论 -
express-session
express-session是Node和express里面处理session的中间件,一说到session,就要提到cookie,这两者的不同可见我的以前博客:http://www.cnblogs.com/zhangmingzhao/p/7613141.html express-session中间件将会话数据存储在服务器上;它仅将会话标识(而非会话数据)保存在 cookie 中。从1.5原创 2017-11-27 16:37:44 · 392 阅读 · 0 评论 -
Node操作cookie
记录查询的信息,然后再主页显示你的喜好。eg: http://localhost:3000/gonglue?mudidi=%E5%B4%A9%E4%B8%89、 可以手动把浏览器cookie删除。但是这次代码数组存下的就存下了。只是在request Header里的cookie被清除了。var express = requir原创 2017-11-27 11:46:12 · 542 阅读 · 0 评论 -
敲代码需要一丝不苟,Node静态化,ejs文件里多了一条外联下的Bug问题
这个Bug是昨天晚上遇到,去SF社区提了出来,估计是太晚了,没人回答,今天早上两个回答。第一个人回答主要是解决双重回调,也怪我,我刚开始也以为是双重回调的问题,因为最近看的网上资料全是Promise和async/await解决回调问题。我想我真不会遇到了?其实不是。第二个大佬认真看了我贴的代码,然后一步步在评论区里沟通,最后说到了为什么css和头像文件会在请求req里出现,估计是我的静态化问题。然后原创 2017-12-22 17:07:09 · 403 阅读 · 0 评论 -
Node对MongoDB实现增删改查,分页功能
对上上一篇的内容的增加:Node.js环境下对MongoDB实现查,插,分页功能本来那时候就写好了,但是那时候有个Bug,不知道哪里的问题,昨天才发现updateMany函数传实参的时候把collectionName打了引号,煞笔了一天。诶=-=//limit,skip高效率做法var express = require("express");var app = exp原创 2017-11-25 17:57:07 · 371 阅读 · 0 评论 -
Node.js环境下对MongoDB实现查,插,分页功能
写法上还是模块化,尽量把不同职责的代码分开,避免"万能类",尽量采用MVC。连接,创建数据库,插入数据 db.js: //这个模块里面封装了所有对数据库的常用操作var MongoClient = require('mongodb').MongoClient;//不管数据库什么操作,都是先连接数据库,所以我们可以把连接数据库//封装成为函数func原创 2017-11-23 17:15:35 · 848 阅读 · 0 评论 -
Node 实现一个MVC相册资源管理器
暂没有数据库,所以做的也是本地的资源管理器。 总体设计: app.js:var express = require("express");var app = express();//控制器var router = require("./controller");//设置模版引擎app.set(原创 2017-11-23 17:13:43 · 1133 阅读 · 1 评论 -
json+underscore+Node 小例子
这里不再用ejs模版,只用Node去发送json数据,用Express静态化public文件,content.html引用underscore模版,引用jQuery,用jQuery向服务器发送AJAX请求,把json的数据读取到underscore的template模版内容里。这种写法,网页是看不到main模块里的代码,这样是前后端更加分离,比直接用Node+ejs更分离一些。这里新闻的n原创 2017-11-23 17:00:40 · 278 阅读 · 0 评论 -
fs.stat()
官方说明:fs.stat(path, callback)#查看英文版 / 查看英文md文件 / 编辑中文md文件版本历史path | | callback err stats 异步的 stat(2)。 回调有两个参数 (err, stats) 其中 stats 是一个 fs.Stats 对象。如果发生错误,则 err.code 会是常见系原创 2017-11-23 16:59:51 · 1551 阅读 · 0 评论 -
基于Node和MongoDB的Web微博系统
基于Node和MongoDB的Web微博系统概述项目是受到《Node.js开发指南》一书启发,作者BYVoid大佬是当时第一批Node开发者,当时学习者迫切需要一个这么DEMO。当然现在已经过去很多年了,Node早就更新无数次了,12年的这本书也就过时,许多代码都根本跑不通了,最后还是要以官网API为准。 1. 项目的后台用的express。 2. 数据库部分自己写的原生MongoDB,没有原创 2017-12-22 23:56:23 · 529 阅读 · 0 评论 -
Node爬虫 爬博客园
博客园右边有一个“找找看”的索引窗口,我们输入关键词,可以查到几万篇的相关的博客,这里用Node的爬虫来抓取给定关键词的查询的特定内容,实现翻页功能,抓取文章链接,作者,发布日期等信息。Node适合高并发IO操作的程序,用来写爬虫速度最快了。这里我们把爬到的数据存储到数据库中。前奏:1.cheerio模块 ,一个类似jQuery的选择器模块,分析HTML利器。2.r原创 2017-10-19 13:34:15 · 523 阅读 · 2 评论 -
await的错误处理问题,一个issue引发的ts社区的讨论
https://github.com/denoland/deno_std/blob/master/fs/empty_dir.ts#L8https://juejin.im/post/5d25b39bf265da1bb67a4176http://es6.ruanyifeng.com/#docs/async任何一个await语句后面的 Promise 对象变为reject状态,那么整个async函...原创 2019-07-13 22:40:28 · 1705 阅读 · 0 评论 -
webpack内存读取技术调研及node相关
webpack内存读取技术调研最近实习中参与到一个项目,需要在线上快速打包和快速读取,为了提高速率,当时我们想到了webpack dev模式下打包文件是临时贮存在内存中的,想学习一下webpack的这种技术是怎么实现的,好应用到项目中。1.webpack原理https://juejin.im/entry/5b0e3eba5188251534379615看这篇文章就够了,很细致,这篇博客主要...原创 2018-11-30 17:05:33 · 1810 阅读 · 0 评论 -
跨域问题(续)
此贴接上贴实践解决跨域问题的三种方式剖析今天继续做我的schub项目的时候,遇到了苦恼我一天的问题,expresss-session没有持久化,我在后端把登录的状态存在req的session里,下次发post的时候再发请求的时候req.session里面存的用户的状态的字段没了。我上次用到express-session的时候还是做得那个微博...原创 2018-08-09 12:52:30 · 249 阅读 · 0 评论 -
实践解决跨域问题的三种方式剖析
最近在做我星际schub网站的时候,遇到了跨域问题,我先把后端node部署在了服务器上,然后在本地lockhost测试,出现了问题: 浏览器都提示我们使用这个header头:解决办法: 1. 服务器设置响应头:response.setHeader("Access-Control-Allow-Origin", "*")f原创 2018-07-12 21:37:17 · 9061 阅读 · 0 评论 -
Node异步爬虫引出的异步流程控制的一些问题
前记: 想写一个电影天堂的爬虫,因为node很长时间落下,就想用node去写一下。结果遇到了一些列的问题,这些问题归根到底就是异步流程控制的问题,在以前就一直会接触到很多回调地狱,Promise为什么会出现诸如此类的话题,现在终于是深刻体会到了!开始的代码是:const cheerio = require('cheerio');const http = require('http'...原创 2018-06-27 17:13:04 · 456 阅读 · 0 评论 -
用Express做一个图片简易防盗链
最近做的一个主管安排的项目,给一个系统多增加一套前端模板,这个本身不难,由于算法那边不能提供数据,我随便复制的网上图片链接,发现有些图片不能正常显示,后来知道有些图片加了“防盗链”,这让我马上想到了以前遇到的http请求头中的referer属性,这个消息头记录了本网站的一些资源请求是来自哪个网站,如果利用这个referer的判断,就可以实现过滤。代码:var express = req...原创 2018-04-13 10:54:05 · 561 阅读 · 0 评论 -
Node读取和写入json,格式化输出json
今天是在深信服实习的第5天,接到任务要做产品的外语版,Web端的实习生目前只有我一个,前端和PHP的都要我来做。。。现在需要一个写一个脚本,处理两个json文件,把Bjson文件在A中没有的中文词条都要找出来写入另外一个json,实际需求要复杂得多,先写个初步demo:var fs = require('fs'), path = require('path');let ans...原创 2018-03-07 15:38:40 · 22826 阅读 · 3 评论 -
http中的referer
最近做vue的一个项目的时候,需要抓取某q音乐的一些数据,分析了某q音乐Web上轮播图的图片和链接的数据传输,发现了是用通过jsonp来做的跨域处理。 然后通过下面代码成功抓取到数据:import originJsonp from 'jsonp'export default function jsonp(url, data, option) { url += (url.ind...原创 2018-02-09 17:53:26 · 3880 阅读 · 1 评论 -
Express static静态路由
Express框架在使用app.use中传入express.static设置静态路由时,这个文件夹下的所有文件夹和文件都会变成路由文件,也就是说当在URL输入该路径时,会直接捕捉到该请求。这时候,下面的app.get请求捕捉到的将会失效。eg:这样一个结构: var express = require("express");var app = e原创 2017-11-23 16:58:49 · 1160 阅读 · 0 评论 -
Node+AJAX+MongoDB 小小留言页
实现:1.表单的提交2.和Mongdo的交互,增删查分页功能3.前端全部留言的显示是用underscore的template模版动态增加4.分页样式用了bootstrap5.主要是AJAX和后台Node的交互,Node和数据库的交互这里AJAX发出请求,Node后台这里捕获到了参数,跟数据库发生交互操作,然后以json形式发送原创 2017-11-25 19:01:34 · 1153 阅读 · 0 评论 -
http填坑
先上三张非常好玩的图,推特上面看到的,“HTTP What?” What's HTTP? http总的过程来说:1 输入网址2 域名解析 2.1 浏览器自身缓存(chrome://net-internals/#dns) 2.2 操作系统自身的dns缓存 2.3 读取本地的host文件 2.4 浏览器发起一个DNS的系统调用(本地主控DNS服务器:宽带原创 2017-09-21 22:47:16 · 294 阅读 · 0 评论 -
Node简单的模块化小例子
模块化解决了JavaScript作用域互相污染问题,这里以写一个学校小例子,便于理解node的这个写法和一些简单的API(比如forEach这个.....)。 文件:依次student.js,teacher.js,kclass.js(class为保留字,不能命名),index.js,school.jsfunction add(student) { conso原创 2017-09-21 17:06:46 · 328 阅读 · 0 评论 -
Node基本Web程序流程图
以前Node官网给的最基本的一个小例子,顺便学下用processon画下思维导图,觉得画的很搓嘛。。。。代码:原创 2017-09-21 11:31:27 · 711 阅读 · 0 评论 -
Node.js入门 ---构建一个Web程序
今天拜读了Manuel Kiessling大神的《Node入门》的博客,感觉收获很多,这篇文章非常适合有JavaScript基础和掌握了一门后台语言(Java,Python等)的想入门node的学习者。文章循循善诱,一步一步升级知识,老外的文章很有思想,写的确实比国内的XX好的多。这里我就开一篇博客记录一下。 什么是Node.js1.中文网官方定义:Node原创 2017-09-20 21:03:22 · 722 阅读 · 0 评论 -
module.exports和exports
首先要认识module.exports和exports分别是什么。 在nodejs中,提供了exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。但exports是引用 module.exports的值。module.exports 被改变的时候,exports不会被改变,原创 2017-09-27 18:59:44 · 399 阅读 · 0 评论 -
Node后台刷评论
原理就是客户端发起了异步请求,简单的说就是客户端把数据通过反向代理,提交给服务器,服务器存下来,然后通过刷新操作,通过向服务器发起请求,服务器再把数据吐到页面上。测试的X课网的,但是测试XX微博却报错了,不知道哪里问题。var http = require('http')var querystring = require('querystring')var postData原创 2017-09-26 00:33:50 · 342 阅读 · 2 评论 -
Node 简单爬虫
以爬慕课网Hadoop进阶课程为例,用Node写一个简单的爬虫:先抓取这个网站的源码:var http = require('http');var url = 'http://www.imooc.com/learn/890';http.get(url, function(res) { var html = ''; res.on('data', functio原创 2017-09-24 18:25:30 · 351 阅读 · 0 评论 -
Node异步污染局部变量问题
看一个例子:这么一个文件夹:现在我们用fs模块判断文件夹,并把文件夹的名字放在一个数组里面。代码:var http = require("http");var fs = require("fs");http.createServer(function(req, res) { if(req.url == "favicon") {原创 2017-10-27 02:57:03 · 319 阅读 · 0 评论 -
通读cheerio API
原文链接:https://cnodejs.org/topic/5203a71844e76d216a727d2e所谓工欲善其事,必先利其器,所以通读了cheerio的API,顺便翻译了一遍,有些地方因为知道的比较少,不知道什么意思,保留了英文,希望各位不吝告诉我,然后一起把这个翻译完成。###cheerio为服务器特别定制的,快速、灵活、实施的jQuery核心实现.###Introd转载 2017-10-20 13:22:00 · 350 阅读 · 0 评论 -
Nodo登陆注册表单,数据库md5加密
按钮绑定AJAX发起post请求的事件,Node后台来处理。doregist把数据插入mongo中,密码md5多重加密。密码稍微长点,复杂点的,md5加密现在还不能反向破解。以base64格式经md5加密后,长度固定。dologin时,把接受的密码用同样公式的md5加密和数据库做对比。regist.ejs:原创 2017-11-28 21:42:55 · 249 阅读 · 0 评论 -
创建一个用于上传文件的表单
index.htm:html>head> title>文件上传表单title>head>body> h3>文件上传:h3> 选择一个文件上传: br /> post请求,修改数据 --> form action="/file_upload" method="post" enctype="multipart/form-data">原创 2017-10-22 21:59:40 · 1012 阅读 · 0 评论 -
POST 异步请求 url没有明文显示
之前在http://www.cnblogs.com/coco1s/p/4954063.html这里看到一篇比较好的Node爬虫,其中有个问题: 我们自己进到博客园的这里,发现:这个请求是POST的,而在上几篇博文我整理到了GET和POST的区别,具体看http://www.cnblogs.com/zhangmingzhao/p/7702000.html这里的URL虽然是https://www.c...原创 2017-10-22 21:57:59 · 874 阅读 · 0 评论 -
nodejs res.end和res.send 区别
原文链接:http://blog.youkuaiyun.com/genziisme/article/details/70144334 简单来说就是 如果服务器端没有数据返回到客户端 那么就可以用 res.end但是 如果 服务器端有数据返回到客户端 这个时候必须用res.send ,不能用 res.end(会报错)例子:var express = require('expres转载 2017-10-22 21:57:14 · 2131 阅读 · 0 评论 -
Node实现简单的表单+图片上传+路由
Node实现一个表单处理+图片上传功能,不是用express1.使用formidable模块用于上传文件(图片)的处理。注意form表单要使用multipart/form-data属性。2.使用chunk分段接收,原因是当接受了一小段,可能就给别人服务了。防止一个过大的表单阻塞了整个进程3.上传上去的图片使用formidable自定义路径,用fs改名。4.实现简单的原创 2017-11-06 23:50:05 · 376 阅读 · 0 评论 -
Node实现静态服务器
1.Node里面是没有Web容器之说的,所以URL上的路径跟实际文件的路径并不是一致,这里我们手动实现一个简单的原生静态服务,让Node能够找到路径的文件,实现静态服务器功能。文件夹的任何文件都能被找到。2.比如在index.html加一个图片时,Node的fs去找这个图片,但是WriteHead你就要写这个MIME类型,为image/jpg,虽然不写,Chrome浏览器可以显示(开发者工原创 2017-10-28 03:18:02 · 451 阅读 · 0 评论 -
Node实现静态服务器2
1.Node不是Apache,Node做的事顶层路由设计,Apache帮你做了一切,而Node你要自己设计,自己手写。所以现在的缺点就是全部都是200,没有304。缓存问题。2.继上次的getMime,这里是完成作业,读取JSON,把所有的文件类型对应起来。注意这里的getMime因为又有了一层fs的readFile的异步,这里返回最后的mime不一定是我们要的mime。这里的解决办法是把原创 2017-10-28 23:51:21 · 223 阅读 · 0 评论 -
http填坑2&Ajax基础详解
同步请求和异步请求先解释一下同步和异步的概念:同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。同步请求:客户端请求(等待)->服务端处理->响应->页面载入 (缺少对象:XMLhttpRequest)这时候如果有错误,只能再次发送请求,再次等待转载 2017-09-26 22:54:23 · 513 阅读 · 0 评论 -
Node 初探异步编程
从C/C++转过来最开始不适应的就是这个了吧。=-=Node是单线程,那么怎么提高效率?怎么解决一些阻塞问题?Node的基因里使用了异步IO,上次在http://www.cnblogs.com/zhangmingzhao/p/7564738.html 已经说到这个问题,Node的异步机制往往伴随着回调。先看一个关于CPU的例子来比较同步和异步: 同步:CPU需要计算10原创 2017-09-22 20:58:22 · 211 阅读 · 0 评论