NodeJS

[Nodejs]利用Socket.IO配合Express4搭建即时聊天

拥有回忆 提交于 2019-12-06 21:41:05
Socket.IO为WebSockets这个较新的web技术提供了必要的支持,包含客户端与服务端模块,以便建立通信通道,当然也可作为中间件而存在。 1 创建一个express项目 ‍‍‍‍‍‍‍‍‍ ‍‍‍‍‍ 防工具盗链抓取【如果显示此文字,代表来自第三方转发】 freddon所有 ‍‍‍ ‍‍‍‍‍‍‍‍‍‍‍ 可以使用命令行初始化一个express项目 先安装express npm install express npm install express-generator express 项目名 cd 项目名 npm install socket.io 也可以在webstorm下新建express项目 File- new Project - Node.js Express App 创建好后文件视图大概是这样 2 服务端修改默认的文件内容 修改routes文件夹下的index.js为 chat.js var express = require('express'); var router = express.Router(); var socket_io = require('socket.io'); /* GET users listing. */ router.get('/', function (req, res, next) { res.send('respond

基于Nodejs的微信消息加密与解密实现概要

老子叫甜甜 提交于 2019-12-06 21:21:22
微信团队提供了 多种语言的示例代码 ,但不包含Nodejs实现版本。经过大量查证和尝试,我已完成并测试通过,下面说说实现要点。 准备 Nodejs为 0.12.1 版或 0.12.2 版,当前最新稳定版。 平台支持Windows和Linux。 基于Python版本改写,通过Python的加解密验证及实际部署验证。 关键点 密匙 key 应当通过 Buffer 转换为binary字符串。 通过 String.fromCharCode 获得补位所用的字符,通过 charCodeAt 判断需要删除的补位字符长度。 设置明文长度时,应通过 Buf.writeUInt32BE 写入,并转换为binary字符串;读取时,使用 Buf.readUInt32BE 。 加密时,XML原文需通过 Buffer 转换为binary字符串。 加密使用 crypto.createCipheriv ,解密使用 crypto.Decipheriv ;须设置 cipher.setAutoPadding(auto_padding=false) ,否则不能正确加解密。 加密时,输入编码为 binary ,输出编码为 base64 。 解密时,输入编码为 base64 ,输出编码为 utf8 。 每个中文字符通过Buffer转换后,实际计算长度为3,因此最后分离 from_appid 时,需便宜行事:P 密匙 key

Nodejs下载文件文件名中文乱码问题解决方案

亡梦爱人 提交于 2019-12-06 20:05:57
最近在使用Nodejs导出下载文件时,遇到了中文文件名乱码问题,于是Google搜索+验证得出以下解决方案: var filename = 'Nodejs中文指南.pdf'; var userAgent = (req.headers['user-agent']||'').toLowerCase(); if(userAgent.indexOf('msie') >= 0 || userAgent.indexOf('chrome') >= 0) { res.setHeader('Content-Disposition', 'attachment; filename=' + encodeURIComponent(filename)); } else if(userAgent.indexOf('firefox') >= 0) { res.setHeader('Content-Disposition', 'attachment; filename*="utf8\'\'' + encodeURIComponent(filename)+'"'); } else { /* safari等其他非主流浏览器只能自求多福了 */ res.setHeader('Content-Disposition', 'attachment; filename=' + new Buffer(filename)

用 Webpack 和 ES6 转换快速开发 Rails 的富客户端

梦想与她 提交于 2019-12-06 18:55:08
Fast Rich Client Rails Development With Webpack and the ES6 Transpiler 有更好的方式把 JavaScript 生态引入 Rails。 你有没有: 想知道是否有更好的方式在现有 Ruby on Rails 工程下使用现代 JavaScript 客户端框架? 烦恼怎样整合那些被打包成"模块"的 JavaScript 库和例子? 发现在全局命名空间下乱挂垃圾的弊端。 听说过 ES6 (又叫 Harmony),下一代 JavaScript,现在正被那些硅谷大牛逼正在用得热火朝天(Facebook, Instagram, Square, 之类的)? 那你应该怎么在你的 Rails 工程中,实现以下这些呢: 你的 UI 原型,如果发现 JS 和 CSS/Sass 代码发生了变化,当保存的时候,立刻反应到界面,而无需重载页面。 成为 Node 生态 中的一等公民,只需要在 package.json 指定依赖,然后执行 npm install ,然后就可以在 JavaScript 文件里面很容易的就导入模块。 无缝集成基于 Node 的 JavaScript assets 到 Rails 的 Asset Pipeline, 无需规避 asset pipeline,而是让它共存,并能利用它。 无缝集成 node 客户端生态到现存的

windows中安装yeoman构建angularJs项目

醉酒当歌 提交于 2019-12-06 12:13:54
yeoman是什么东西我在這里就不介绍了,网上一搜一大把,我们直接进入正题。 一、环境配置 (1). Ruby ,下载地址: http://rubyinstaller.org/downloads/ ‍ 1.1.安装文件直接安装就好了,命令行输入 ruby --version可以看到版本就安装成功,否则请设置环境变量(此不详说) 1.2. 设置gem源为 淘宝的ruby源 , cmd中输入如下内容 gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/$ gem sources -l (2).ruby安装完成之后请安装compass,安装步骤见官方: http://compass-style.org/install/ (3).安装nodejs,官网直接下载安装即可 (4)安装python,此处需要注意的是:1.版本(建议是2.7.3, v3.x.x不支持 );2.配置环境变量 (5)安装node-gyp,安装命令:npm install -g node-gyp (6)安装yoeman,grunt,bower;命令:npm install -g yo grunt-cli bower (7)测试安装情况输入:yo --version & grunt --version & bower -

用 Socket.io 处理 NodeJS 和 AngularJS 间的 tweet

僤鯓⒐⒋嵵緔 提交于 2019-12-06 07:28:56
这篇文章里面,我们学习一下,怎么用 Socket.io 来流化处理一些旧金山周边的 tweet,在 nodejs 应用和 angularjs 应用之间。我们为了从 nodejs 应用拿到 tweet, 我们用的是 Twitter API 的 nodejs 客户端: Twit 。 首先,我们需要在 Twitter developers 创建一个应用。创建一个只需要读权限的应用。对我们的应用来说足够了。现在,生成你的访问 token。 你需要四个 token: Application API Key, Application API Secret, Access Token 和 Access Token Secret。 你可以从 Github 拿到 源码 ,从 这里 访问在线例子。 拿到旧金山周边的 tweets: 通过 nodejs 和 Twit 为了在 nodejs 中拿到 tweets, 我们需要配置 Twit。 <!-- lang: js --> var Twit = require('twit'); var TWEETS_BUFFER_SIZE = 3; var T = new Twit({ consumer_key: 'API Key', consumer_secret: 'API Secret', access_token: 'Access Token', access

Node.JS 学习路线图

吃可爱长大的小学妹 提交于 2019-12-05 13:37:21
  从零开始nodejs系列文章 , 将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发。Nodejs框架是基于V8的引擎,是目前速度最快的 Javascript引擎。chrome浏览器就基于V8,同时打开20-30个网页都很流畅。Nodejs标准的web开发框架Express,可以帮 助我们迅速建立web站点,比起PHP的开发效率更高,而且学习曲线更低。非常适合小型网站,个性化网站,我们自己的Geek网站!!   前言   用Nodejs已经1年有余,陆陆续续写了48篇关于Nodejs的博客文章,用过的包有上百个。和所有人一样,我也从Web开发开始,然后到包管 理,再到应用系统的开发,最后开源自己的Nodejs项目。一路走来,Nodejs已经成为我做Web项目的标配。我非常愿意把原Java、PHP的 Web系统向Nodejs迁移,因为1个人可以很容易的完成10个人的活了。   本文把我的学习和使用经验进行归纳总结,希望给新入门Nodejs的同学做一些指引。    目录 Nodejs的介绍 15个Nodejs应用场景 Nodejs学习路线图  1. Nodejs的介绍   Node.js的是建立在Chrome的JavaScript的运行时,可方便地构建快速,可扩展的网络应用程序的平台。Node.js使用事件驱动,非阻塞I/O模型,轻量、高效

Nodejs学习路线图

半腔热情 提交于 2019-12-05 13:36:52
Node.js的介绍 Node.js的是建立在Chrome的JavaScript的运行时,可方便地构建快速,可扩展的网络应用程序的平台。Node.js使用事件驱动,非阻塞I/O模型,轻量、高效,可以完美地处理时时数据,运行在不同的设备上。 1.1. 谁在用Node.js? 从Node.js官方网站的企业登记页(https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node),包括我们熟知的公司有LinkedIn, Yahoo, Paypal, eBay, Walmart,Groupon 还有很多的中小型公司,国内的公司如雪球、淘宝、网易、百度等也都有很多项目运行在Node.js之上。 这些公司不仅是尝试在用,而且都在向Node.js迁移。截止到2014年6月本文发稿时,已经有79693包在npm.org上面发布,而且这个数字还在快速增长中。 那么接下来,大家肯定都会问为什么要是用Node.js呢? 1.2. 为什么要用Node.js? 从我使用体会来说,Node.js有4大优势: Node.js基于Javascript语言,不用再单独新学一门陌生的语言,从而减低了学习的门槛。同时,Javascript语言在Web前端开发中至关重要,特别HTML5的应用必须要使用

centos 6.x x86_64装nodejs模块ws

落花浮王杯 提交于 2019-12-05 12:15:11
为了在nodejs下用下websocket,需要装个ws模块,于是就去装了。我知道还有其他模块实现,反正我就选了这个去实验。 关于centos装nodejs请参考这文章: http://stackoverflow.com/questions/20028996/how-to-install-node-binary-distribution-files-on-linux ,用的是Amin Meyghani的回复方法。 一开始当然是不成功的,发现有个关键提示: ../node_modules/nan/nan.h:41:3: error: #error This version of node/NAN/v8 requires a C++11 compiler 搜索了下发现C++11需要gcc 4.7以上,系统默认的是4.4.7.不合要求。 下面正确装ws模块的节奏: step 0: 升级 gcc 到4.7以上,参考: http://superuser.com/questions/381160/how-to-install-gcc-4-7-x-4-8-x-on-centos 不过我装的是devtools-2,一个不新不旧的版本。 cd /etc/yum.repos.d wget http://people.centos.org/tru/devtools-2/devtools-2.repo

npm使用淘宝镜像

孤者浪人 提交于 2019-12-05 03:02:50
参考:https://cnodejs.org/topic/4f9904f9407edba21468f31e 参考:http://npm.taobao.org/ 镜像使用方法(四种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 1.通过config命令 npm config set registry https://registry.npm.taobao.org npm info underscore #(如果上面配置正确这个命令会有字符串response) 2.命令行指定 npm --registry https://registry.npm.taobao.org info underscore 3.编辑 ~/.npmrc 加入下面内容 registry = https://registry.npm.taobao.org 4.淘宝推荐,安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org cnpm install [name] 来源: oschina 链接: https://my.oschina.net/u/2351685/blog/511738