NodeJs
starwmx520
这个作者很懒,什么都没留下…
展开
-
让Node模块在浏览器运行----browserify
node里可以用npm install 来安装很多的模块到项目 。但是它们只能在node环境下才能运行。现在用browserify模块可以实现在浏览器运行node模块。通过 require('Xx')来加载模块,或自定义模块。使用:npm install -g browserify //安装创建目录安装 npm install uniq 创建main.js v原创 2015-10-16 17:46:18 · 4538 阅读 · 0 评论 -
express redis socket 消息提醒方案:本地emit 轮循服务器获取redis 再推送
在做项目时,需要实现消息提醒,因为现在有多个项目,都需要实现。为了实现多项目公用,和以后项目也可以使用。单独开了个项目,起了个node 服务来实现消息提醒。用express redis socket.io来实现的。session 都存在redis里,所有的服务都一样。这样实现了,sessio共享只要其他项目登录了,消息服务也就登录了。因为要多个项目共用,所以会在项目中引用s原创 2016-08-22 11:00:54 · 1342 阅读 · 0 评论 -
casperjs 用法
1、安装它需要依赖Phantomjs ,所以需要先下载,然后在环境变量里配置路径,指向phantomjs.exe的文件目录。完成后可用Phantomjs -v 查看版本,表明配置成功。然后在项目里安装casperjs npm install capserjs实例代码:var casper = require('casper').create();casper.start原创 2016-09-13 11:34:45 · 677 阅读 · 0 评论 -
request cheerio 抓取页面并获取所需数据
有了node后,前端抓取网页数据就不成问题了一般抓取都是获取页面中指定的数据。分两种,一种同标签的html 一种是标签的属性值。我自己写的比较lou ,只是从列表获取详情url,然后读取详情页面。用cheerio获取有用数据,用fs写到文件内。保存指定的图片。当然它对于页面用ajax加载的数据是无效的。request 只能拿到页面的源码。至于获取ajax后的页面代码原创 2016-08-23 16:12:19 · 3707 阅读 · 0 评论 -
jsdom 使用
它的功能和cheerio 类似。用来在node上解析html。但是它还有加载页面的功能。jsdom.env( "http://www.baidu.com", ["http://code.jquery.com/jquery.js"], function (err, window) { // console.log("there have been", window.$(原创 2016-08-23 16:17:42 · 4040 阅读 · 0 评论 -
phantomjs
在网上一搜一大堆,我也没有多深入研究我也只是会创建pagevar page = require('webpage').create();设置属性page.paperSize = { width: '1000px', height: '700px', margin: { top: '0px', left: '0px' }};原创 2016-08-23 16:41:47 · 502 阅读 · 0 评论 -
node.js 调试工具 node-inspector
在写node 服务端时,调试是个事,虽然有node --debug XX.js用node-inspector 可以实现浏览器端打断点调试,得到断点的环境下的变量信息。安装时需在全局下-g使用,node 运行js 另一个窗口运行node-inspector ,它会开启8080端口。浏览node 开启的页面,另一个访问8080这时页面显示的chrome调试工具一样。原创 2016-08-24 16:33:17 · 414 阅读 · 0 评论 -
pm2
pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。它非常适合IaaS结构用法$ npm install pm2 -g # 命令行安装 pm2 $ pm2 start app.js -i 4 #后台运行pm2,启动4个app.js转载 2016-08-12 15:47:50 · 266 阅读 · 0 评论 -
express redis socket 消息提醒方案2:订阅redis,推送消息
第二个方案和上个区别在于服务器得到消息后主动推送给对应客户端。实现就是redis 订阅事件,监听message,得到发布后分析,推送给指定链接的userid。服务器区别代码:var redis_socket_sub=require('./redis_socket_sub.js')//注册 订阅事件 用switch 分别事件redis_socket_sub.init_sub(fu原创 2016-08-22 11:09:58 · 2402 阅读 · 0 评论 -
nginx 使用
1、日志配置默认#access_log logs/host.access.log main;是被注释的,日志会放在logs/access.log。当然也可以设置路径和名称。如果有多个server配置,可以每个配不同的日志2、日志格式通过log_format 来配置参考(http://blog.chinaunix.net/uid-20104120-id-4089993原创 2016-08-15 09:07:10 · 415 阅读 · 0 评论 -
nginx node 服务(server)
1、下载nginx解压,配置环境变量,cmd进到nginx目录。2、nginx 命令start nginx //开启nginx -s reload :修改配置后重新加载生效nginx -s reopen :重新打开日志文件关闭nginx:nginx -s stop :快速停止nginx quit :完整有序的停止nginx原创 2016-08-13 15:33:46 · 1008 阅读 · 0 评论 -
node forever 使用
forever 是在pm2这前用的服务器node 工具地址:https://github.com/foreverjs/foreverforever可以看做是一个nodejs的守护进程,能够启动,停止,重启我们的app应用。官方的说明是说:A simple CLI tool for ensuring that a given script runs continuously (i.e转载 2016-08-20 18:37:56 · 3190 阅读 · 0 评论 -
node http fs 实现 抓取网页源码并保存
/*author:star*/var fs=require('fs');var http=require('http');//urls 为url参数数组。var urls=['http://www.baidu.com','http://www.baidu.com','http://www.baidu.com','http://www.baidu.com']urls=urls.co原创 2016-08-20 18:32:00 · 677 阅读 · 0 评论 -
express 4.X cookie session
1、cookiereq.cookies.XX 获取res.cookie(name,value,{maxAge:0}) //设置cookie2、sessionreq.session 获取req.session.XX = 设置sessionapp.use(session({ secret: 'keyboard cat', resave: true, saveUni原创 2016-08-26 18:32:30 · 763 阅读 · 0 评论 -
node 服务端的jquery---cheerio
现在有了node的出现,我们可以用Js来开发服务端。前端常用的肯定是jquery,服务端想操作html如何做呢?用cheerionpm install cheeriovar cheerio = require('cheerio'),//load用来引入需要解析的Html;//test设置文本 $ = cheerio.load('Hello world');$('h2转载 2015-11-09 14:59:14 · 478 阅读 · 0 评论 -
node之object-assign
最近在看flux时,在写store模块时用到了 object-assign模块。它的用法:var objectAssign = require('object-assign');objectAssign({foo: 0}, {bar: 1});//=> {foo: 0, bar: 1}// multiple sourcesobjectAssign({foo: 0}, {ba原创 2016-01-27 15:59:33 · 1557 阅读 · 0 评论 -
node之keyMirror模块
var keymirror=rquire('keyMirror')var colors=keymirror({blue:null,red:null})colors={blue:blue,red:red}此包就一个方法,参数是对象。后来返回值和属性名一样的对象。原创 2016-01-27 16:19:00 · 448 阅读 · 0 评论 -
node之classnames模块
在react中编写模板时给标签添加class。如果是固定的className="XX"就可以了。如果要根据状态值动态应用或去除,或使用多个class时就麻烦了。可以使用classnames模块来解决:var classnames= require('classnames');classnames('foo', 'bar'); // => 'foo bar' classNam原创 2016-01-27 17:21:57 · 7097 阅读 · 0 评论 -
express 4.0 使用
1、获取post 数据配置:var bodyParser = require('body-parser');app.use(bodyParser())2、可以发请delete put 请求:var methodOverride = require('method-override')app.use(methodOverride('X-HTTP-Method'))原创 2016-03-02 16:25:56 · 407 阅读 · 0 评论 -
babel 用法
首先说明用bower 安装的生成react 渲染的和这个babel不一样。需全局安装babel-cli原创 2016-03-02 18:19:56 · 369 阅读 · 0 评论 -
browserify 使用
1、安装和生成:npm install -g browserifybrowserify main.js > bundle.js2、解析:browserify 可以让我们在前端引用npm 模块,或自定义的模块使用require('XX')来引用npm 模块用require('./XX.js')引用当前目录下自定义模块一般会在main 或app js 里引用模块来实现入原创 2016-01-19 11:45:59 · 1366 阅读 · 0 评论 -
wilddog
现在前端开发工具越来越多了。可是并不是所有的开发人员都会写些后端api。所以了wilddog这样的服务。它提供了免费的api服务接口。平台上创建项目后,通过js或以修改添加等.数据以json存储的,也就是一个对象。而不能用数据。Node:用法var Wilddog = require("wilddog");var ref = new Wilddog("h原创 2016-03-24 11:11:38 · 869 阅读 · 0 评论 -
koa 用法
var koa = require('koa');//引用var app = koa();//创建不需要new //中间件中yield next 将控制权交给下一个符合的中间件。//当最终的中间件执行完,会去执行被挂起的next后的代码。一直逆推而上。//以下执行顺序 aa bb body 逆推 输出时间 最后cc app.use(function *(next){原创 2016-04-18 18:07:19 · 1339 阅读 · 0 评论 -
node 实现SSO
单点登录,在多个域名环境下,一处登录,多处使用。大公司都会这样去做,如淘宝登录了,到了天猫又要登录,啊有点烦。需要实现a.com 上登录了,b.com上也登录成功了。访问b.com时就不必再登录了。b.com 退出了,a.com也退出了。需要解决的问题是绕过同源策略。因为a.com是不能向b.com写cookie的。解决办法,向a.com发起jsonp请求。原创 2016-06-16 14:00:50 · 1764 阅读 · 0 评论 -
nginx 实现多域名转发到web服务不同路径
项目背景我们有个项目前端是用vue 写的,node 起的web服务,中转api到后台接口。但是项目下有多个平台,可以理解成多个端,每个端都有自己的node web服务,绑定不同端口,如3001 3002 3003 3004 ...这有个麻烦的就是部署,需要启多个服务。现在想把多个端合并在一起,起一个node web 服务。端的区别用路径。如a 端就是/a ,b端就是/b这样原创 2016-11-26 17:53:28 · 17907 阅读 · 0 评论