[转]nodeJS中redis初步使用】的更多相关文章

本文转自:https://blog.csdn.net/frankenjoy123/article/details/55209637 Node.js下使用Redis,首先: 1.有一台安装了Redis的服务器,当然,安装在本机也行 2.本机,也就是客户端,要装node.js 3.项目要安装nodejs_redis模块 注意第 3 点,不是在本机安装就行了,而是说,要在项目中安装(引用). 方法是,DOS窗口,在项目目录下,输入 npm install redis 这样就将nodejs_redis下…
Redis数据库采用极简的设计思想,最新版的源码包还不到2Mb.其在使用上也有别于一般的数据库. node_redis redis驱动程序多使用 node_redis 此模块可搭载官方的 hiredis C 语言库 - 同样是非阻塞的,比使用JavaScript内置的解释器性能稍好.可选择将hiredis 与 redis 一同安装. npm install hiredis redis 如果 hiredis 安装成功, node_redis 会默认使用 hiredis, 否则会使用JavaScri…
一.前言 intel-iot-examples-datastore 是Intel提供用于所有Edison开发板联网存储DEMO所需要的服务器工程.该工程是基于nodejs和redis写成的一个简单的工程.针对nodejs和redis会在后面介绍. It is a Node.js* application written using Express* (https://github.com/strongloop/express). It uses a Redis* (http://redis.io…
本文转自:https://blog.csdn.net/wellway/article/details/76176760 在之前的这篇文章 在ExpressJS(NodeJS)中设置二级域名跨域共享Cookie 中提及将Session存放到Mongodb中,其中有很多讲解的不是很详细. 我们为什么要把Session存放到数据中,以及又为什么要在子域名间跨域共享Cookie呢? Session与Cookie的关系 客户端与服务会使用一个Sessionid的Cookie值来进行客户端和服务器端会话的匹…
NodeJS中的默认引擎是jade有点过于复杂,而且不是以HTML为基础的,学习成本和前端适应成本都很大.而ejs虽然简单,但不支持模板导入,而且效率一般. swig的语法简单,学习成本很低,符合常规逻辑,实验了一下,非常满意: swig的官网:swig 在Express中使用swig 在nodejs随便建立一个express项目,直接使用命令 mddir 文件夹名称 cd 文件夹名称 express 就可以建立一个一jade为模板的项目. 在package中更改引用 把jade去掉,改为: "…
再分析详细内容之前,必需要好好阅读下面下面两篇blog 学习Javascript闭包(closure) Javascript的this使用方法 这两篇文章是阮一峰老师对Javascript的闭包和this使用方法的总结. 总结来说.闭包能够大概的理解为运行函数对环境上下文的变量的绑定. this是指向调用函数的环境对象. 第二篇中.this的使用方法阮老师是相对浏览器进行的分析. 在评论中非常多同学已经指出nodejs中this的keyword并不是文中那样的属性. 亲自实验之后发现确实如评论所…
nodejs 中的异步之殇 终于再次回到 nodejs 异步中,以前我以为异步在我写的文章中,已经写完了,现在才发现,还是有很多的地方没有想清楚,下面来一一说明. 模块同步与连接异步 大家应该,经常使用 express 进行网站开发.express 本来的问题不是重点,你肯定要用到第三工具,redis, mysql 了之类的. redis 需要连接,而连接成功需要一个回调(他是一个异步).问题就在这里,这个问题是:倒底是 redis 先连接成功,还是 express 先启动成功? redis.o…
Nodejs中获取时间戳的方法有很多种,例如: new Date().getTime() Date.now() process.uptime() process.hrtime() 平时想获取一个时间戳的话,用这些方法都可以,那么这些方法有什么区别呢? new Date().getTime()和Date.now() 这些方法是通过node运行环境的系统时间毫秒数,+new Date()写法的效果和new Date().getTime()效果相同. 在需要频繁使用时间戳的场景中,需要关注方法性能,这…
最近需要在Nodejs中用到C#的代码,从网上了解到可以采用Edgejs来实现Nodejs与C#的代码交互, 直接复制网上的代码运行总是出各种错,填了不少坑,现在把自己的案例代码大致整理一下,方便以后自己查询. 一.安装Edge.js 运行命令行(CMD),进入当前项目的目录,执行命令"npm install edge"进行安装.(这里也可以选择全局安装,具体操作就不说了) 二.调用Edge.js 在用Edge.js和C#代码交互的时候,有三种方式: 1. 第一种方式是将c#的代码封装…
经常看到 req.on('error', function(){...}); 这种代码. 在nodejs中,可以使用 EventEmitter来实现. 具体的关键词有如下几个: var reqEvent = new EventEmitter(); reqEvent.on(ev, cb); reqEvent.emit('error'); 下面是这个实现方法: var EventEmitter = require('events').EventEmitter; var reqEvent = new…
nodejs的主要特点是单线程.异步I/O.事件驱动.让我们先大概了解一下这些名词的意思. 单线程 单线程是任务按照顺序执行的,并且每次只执行一个任务,只有前面的任务执行完成以后,后面的任务才执行.在JS引擎中负责解释和执行JavaScript代码的线程只有一个,即主线程.但实际上还存在其他的线程.例如处理AJAX请求的线程.处理DOM事件的线程.定时器线程.读写文件的线程等.这些线程可能存在与JS引擎之内,也可能存在与JS引擎之外,这些线程为工作线程. 同步和异步 同步:执行任务时,后面的任务…
在nodejs中可以通过fs模块读写文件,我们来看下fs模块提供的接口: fs.readFile(filename, callback) 异步读取文件. filename是读取文件的文件名,如果是相对路径,则通过当前进程执行的路径来查找文件. 回调函数有两个参数callback(err, buffer) 第一个参数为err(如果没有报错,该参数值为null),进行操作时,应先判断err是否有值. 第二个参数是代表文件内容的Buffer实例. fs.writeFile(filename, cont…
以下内容都是关于在nodejs中的this而非javascript中的this,nodejs中的this和在浏览器中javascript中的this是不一样的. 在全局中的this console.log(this); {}this.num = 10; console.log(this.num); 10 console.log(global.num); undefined 全局中的this默认是一个空对象.并且在全局中this与global对象没有任何的关系,那么全局中的this究竟指向的是谁?…
在JS中有全局作用域和函数作用域,而在Nodejs中也自己的作用域,分为全局作用域(global)和模块作用域. js作用域: 以前学js的时候我们的全局对象是window,如: var a = 10; console.log(window.a); 我们定义的全局变量默认是给window添加一个属性或者方法. function fn(){ var num = 22; } console.log(num); 报错,因为num是在函数中定义的,在函数外部是访问不了函数内部的变量的,虽然可以通过闭包来…
只要是在nodejs中写自己的文件模块就少不了会遇到module.exports和exports的使用,看别人的代码大多都会使用“module.exports=exports=<对象/函数等>”怪异的串联用法,一问原因,貌似都是云里雾里,如此写法更像是保守的防止性写法. 这种问题除了看源代码外,只能写点代码进行求证. 写了两个模块文件,provider.js产生任意类型的对象, customer.js返回并输出provider对象. 第一种情况: provider.js,直接在exports上…
详细讲解nodejs中使用socket的私聊的方式 在上一次我使用nodejs+express+socketio+mysql搭建聊天室,这基本上就是从socket.io的官网上的一份教程式复制学习,然后,根据国情,我又在其中加入了私聊点对点,然后共享画图的你画我猜功能. 先上效果图: 由于本人太穷,所以服务器和数据库都是使用的国外免费的.域名是我的,它的访问地址是:http://chat.lovewebgames.com 先说下我对socket.io的理解,websocket更像是开启了一个端口…
Nodejs中cluster模块的多进程共享数据问题 前述 nodejs在v0.6.x之后增加了一个模块cluster用于实现多进程,利用child_process模块来创建和管理进程,增加程序在多核CPU机器上的性能表现.本文将介绍利用cluster模块创建的多线程如何共享数据的问题. 进程间数据共享 首先举个简单的例子,代码如下: var cluster = require('cluster'); var data = 0;//这里定义数据不会被所有进程共享,各个进程有各自的内存区域 if…
在常用的nodejs+express工程中,为了安全在登录及表单传输时,应该都需进行加密传输,目前个人常用到的加密方式有下列几种: 1.Hash算法加密: 创建一个nodejs文件hash.js,输入内容如下: var crypto = require('crypto'); //加载crypto库 console.log(crypto.getHashes()); //打印支持的hash算法 结果如下: [ 'DSA', 'DSA-SHA', 'DSA-SHA1', 'DSA-SHA1-old',…
常用的nodeJS中npm的命令:npm主要是node包管理和发布的工具.npm常用的命令:1:npm install <name> //(下载包) 下载后的包放在当前路径下面 npm install express 下载express模块2:npm install <name> -g //-g 将包安装到全局环境中,我PC的全局环境是:C:\Users\qinbb\AppData\Roaming\npm,但是在代码中直接通过require()的方式是没有办法调用全局安装的包的3:…
前言 Nodejs最大的亮点就在于事件驱动, 非阻塞I/O 模型,这使得Nodejs具有很强的并发处理能力,非常适合编写网络应用.在Nodejs中大部分的I/O操作几乎都是异步的,也就是我们处理I/O的操作结果基本上都需要在回调函数中处理,比如下面的这个读取文件内容的函数: fs.readFile('/etc/passwd', function (err, data) { if (err) throw err; console.log(data); }); 那,我们读取两个文件,将这两个文件的内…
关于Redis的介绍我们在之前Laravel 缓存配置一节中已有提及,Redis是一个开源的.基于内存的数据结构存储器,可以被用作数据库.缓存和消息代理.相较Memcached而言,支持更加丰富的数据结构,包括字符串.哈希.列表.集合.有序集合等,此外还支持将数据持久化到数据库.更多关于Redis的介绍可查看其官网介绍.今天我们只是简单讲述在Laravel中如何对Redis依赖包进行安装配置和使用. 1.安装启动Redis及依赖包 如果使用的是Homestead虚拟机作为本地开发环境的话,Hom…
Mongodb使用 打开解压后的Mongodb文件夹,新建data.logs文件夹,并在logs文件夹中新建mongodb.log文档. 添加后Mongod文件夹示意图: 用cmd命令行启动Mongodb:命令行进入bin目录,输入命令mongod --dbpath ..\data 加载Mongodb到服务 Mongodb默认端口27017.启动时防止端口占用. 每次使用命令行启动比较麻烦,下面说明将Mongodb加载到服务的方法. cmd命令行打开到bin目录,输入以下命令: mongod -…
nodejs中的异步 1 nodejs 中的异步存在吗? 现在有点 javascript 基础的人都在听说过 nodejs ,而只要与 javascript 打交到人都会用或者是将要使用 nodejs .毕竟 nodejs 的生态很强大,与 javascript 相关的工具也做的很方便,很好用. javascript 语言很小巧,但是一旦与 nodejs 中的运行环境放在一起,有些概念就很难理解,特别是异步的概念.有人会说不会啊,很好理解啊?不就是一个ajax请求加上一个回调函数,这个ajax函…
导言:nodejs中所有与文件相关的操作都在fs模块中,而读写操作又是我们会经常用到的操作,nodejs的fs模块针对读操作为我们提供了readFile,read, createReadStream三个方法,针对写操作为我们提供了writeFile,write, createWriteStream三个方法,下面分析一下它们的区别: 一.readFile和writeFile 1.readFile方法是将要读取的文件内容完整读入缓存区,再从该缓存区中读取文件内容,具体操作如下: fs.readFil…
前面的话 Node组织了自身的核心模块,也使得第三方文件模块可以有序地编写和使用.但是在第三方模块中,模块与模块之间仍然是散列在各地的,相互之间不能直接引用.而在模块之外,包和NPM则是将模块联系起来的一种机制.在介绍NPM之前,不得不提起CommonJS的包规范.JavaScript不似Java或者其他语言那样,具有模块和包结构.Node对模块规范的实现,一定程度上解决了变量依赖.依赖关系等代码组织性问题.包的出现,则是在模块的基础上进一步组织JavaScript代码.CommonJS的包规范…
最近在写xmocker的工具,用于开发前期的mock数据,不可避免的用到了代理的中间件.当然,github上有关于http-proxy封装的中间件.毕竟是自己练手的项目,就自己写了个中间件,方便定制功能. http-proxy库用于koa中,是使用它的 proxy.web方法.常规的用法是: proxy.web(req, res, { target: 'http://mytarget.com:8080' }, function(e) { ... }); 项目中的要求是将API代理到用户填写的网址…
安装方法 安装redis方法请自行百度, 用npm方法,安装nodejs的redis模块 npm install redis 实战 var redis = require("redis") , client = redis.createClient(); client.on("error", function (err) { console.log("Error " + err); }); //链接redis_name表 client.on(&q…
通读cheerio API ——NodeJs中的jquery 所谓工欲善其事,必先利其器,所以通读了cheerio的API,顺便翻译了一遍,有些地方因为知道的比较少,不知道什么意思,保留了英文,希望各位不吝告诉我,然后一起把这个翻译完成. ###cheerio 为服务器特别定制的,快速.灵活.实施的jQuery核心实现. ###Introduction 将HTML告诉你的服务器 var cheerio = require('cheerio'), $ = cheerio.load('<h2 cla…
模块是一门语言编写大项目的基石,因此,了解如何组织.编写.编译.加载模块很重要.这里主要谈谈Node中的模块加载. 1.Node中的模块,主要使用require来加载模块,文件 require("./") --- 加载本文件夹下面的package.json,如果没有,则加载index.js.index.node require("some.js") --加载本文件夹下面的some.js文件 require("lib/some.js") --加载l…
在nodejs中,json序列化时Date类型时,默认转为UTC格式. 如下图 上面只是一个例子,下面我用一个更具体化的例子来展示一个这个情况,我们在开发WEB项目中,经常用到Express组件, 我们就用express创建了一个demo项目 这是一个express项目,大家都很熟悉吧,我们现在要提供一个api接口,返回一些信息 返回操作员信息,这是很正常的接口吧, 大家看一下,接口log日志中显示的时间是晚上20点,可是接口返回的JSON数据即是12点,差8个小时. 为什么呢? 原因是因为JS…