node.js下LDAP查询实例分享
目标:
从一个LDAP Server获取uid=kxh的用户数据
LDAP地址为:ldap://10.233.21.116:389
在工程根目录中,先npm一个LDAP的访问库ldpajs
npm install ldapjs
在工程根目录中,创建一个app.js
var ldap = require("ldapjs"); //创建LDAP client,把服务器url传入 var client = ldap.createClient({ url: 'ldap://10.203.24.216:389' }); //创建LDAP查询选项 //filter的作用就是相当于SQL的条件 var opts = { filter: '(uid=kxh)', //查询条件过滤器,查找uid=kxh的用户节点 scope: 'sub', //查询范围 timeLimit: 500 //查询超时 }; //将client绑定LDAP Server //第一个参数:是用户,必须是从根节点到用户节点的全路径 //第二个参数:用户密码 client.bind('uid=supbind,cn=users,dc=tiger,dc=com', '123456', function (err, res1) { //开始查询 //第一个参数:查询基础路径,代表在查询用户信心将在这个路径下进行,这个路径是由根节开始 //第二个参数:查询选项 client.search('DC=tiger,DC=com', opts, function (err, res2) { //查询结果事件响应 res2.on('searchEntry', function (entry) { //获取查询的对象 var user = entry.object; var userText = JSON.stringify(user,null,2); console.log(userText); }); res2.on('searchReference', function(referral) { console.log('referral: ' + referral.uris.join()); }); //查询错误事件 res2.on('error', function(err) { console.error('error: ' + err.message); //unbind操作,必须要做 client.unbind(); }); //查询结束 res2.on('end', function(result) { console.log('search status: ' + result.status); //unbind操作,必须要做 client.unbind(); }); }); });
相关推荐
-
跟我学Nodejs(一)--- Node.js简介及安装开发环境
学习资料 1.深入浅出Node.js 2.Node.js开发指南 简介(只捡了我觉得重要的) Node.js是让Javascript脱离浏览器运行在服务器的一个平台,不是语言: Node.js采用的Javascript引擎是来自Google Chrome的V8:运行在浏览器外不用考虑头疼的Javascript兼容性问题 采用单线程.异步IO与事件驱动的设计来实现高并发(异步事件也在一定程度上增加了开发和调试的难度): Node.js内建一个HTTP服务器,所以对于网站开发来说是一个好消息:
-
一行命令搞定node.js 版本升级
node有一个模块叫n(这名字可够短的...),是专门用来管理node.js的版本的. 首先安装n模块: npm install -g n 第二步: 升级node.js到最新稳定版 n stable 是不是很简单?! n后面也可以跟随版本号比如: n v0.10.26 或 n 0.10.26 就这么简单,这可怎么办??!! 另外分享几个npm的常用命令 npm -v #显示版本,检查npm 是否正确安装. npm install express #安装express模块 npm install
-
Sequelize中用group by进行分组聚合查询
一.SQL与Sequelize中的分组查询 1.1 SQL中的分组查询 SQL查询中,通GROUP BY语名实现分组查询.GROUP BY子句要和聚合函数配合使用才能完成分组查询,在SELECT查询的字段中,如果没有使用聚合函数就必须出现在ORDER BY子句中.分组查询后,查询结果为一个或多个列分组后的结果集. GROUP BY语法 SELECT 列名, 聚合函数(列名) FROM 表名 WHERE 列名 operator value GROUP BY 列名 [HAVING 条件表达式] [W
-
Sequelize 常用操作详解及实例代码
Sequelize 常用操作demo 链接 var Sequelize = require('sequelize'); var sequelize = new Sequelize('nodejs', 'root', '', {host : '127.0.0.1', port : '3306', dialect : 'mysql'}); 查询 Task.findAll({limit : 10, age:{gt:3},order : 'id asc'}, {raw : true, logging :
-
Node.js Sequelize如何实现数据库的读写分离
一.前言 在构建高并发的Web应用时,除了应用层要采取负载均衡方案外,数据库也要支持高可用和高并发性.使用较多的数据库优化方案是:通过主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力. 1. replication选项与读写分离 Sequelize 支持读/写分离,要实现读/写分离可以分别为读和写各创建一个Sequelize实例,更方便的使用方式是在创建实例时,通过replication选项分别指定读/写数据库. 要在Seq
-
Node.js(安装,启动,测试)
概念 Node.js 是构建在Chrome javascript runtime之上的平台,能够很容易的构建快速的,可伸缩性的网络应用程序.Node.js使用事件驱动,非阻塞I/O 模式,这使它能够更轻量,高效且完美的适用于运行在分布式设备之间的数据密集型实时应用程序. 安装 这里主要介绍基于windows平台上最简单方便的安装方式,我们首先直接访问node.js官方网站http://www.nodejs.org/,直接点击Install按钮开始下载安装. 点击Run按钮开始运行 继续点击Nex
-
Node.js实战 建立简单的Web服务器
前面一章,我们介绍了Node.js这个面向互联网服务的JavaScript服务器平台,同时Node.js的运行环境已经搭建起来,并通过两段HelloWorld程序验证了Node.js的基本功能.本章我们同样通过实战的演练,利用Node.js建立一个简单的Web服务器. 如果你熟悉.NET或其他类似平台的Web开发,你可能会像,建立一个Web服务器有什么,在Visual Studio中建立一个Web工程,点击运行即可.事实的确是这样,但请不要忘记,这样的代价是,比如果说,你是用.NET开发Web应
-
windows系统下简单nodejs安装及环境配置
相信对于很多关注javascript发展的同学来说,nodejs已经不是一个陌生的词眼.有关nodejs的相关资料网上已经铺天盖地.由于它的高并发特性,造就了其特殊的应用地位. 国内目前关注最高,维护最好的一个关于nodejs的网站应该是http://www.cnodejs.org/ 这里不想谈太多的nodejs的相关信息.只说一下,windows系统下简单nodejs环境配置. 第一步:下载安装文件 下载地址:官网http://www.nodejs.org/download/ 这里用的是
-
node.js Sequelize实现单实例字段或批量自增、自减
一.单实例自增.自减 在Sequelize中,一个实例(Instance)表示数据库中的一行记录.Instance有两种:由Model.build()创建的非持久化实例,和由Model.create()等方法创建的持久化实例.无论是持久化还是非持久化实例,都会有increment() .decrement()两人上方法,分别用于字段值的自增和自减两种操作. instance.increment(fields, [options]) - 字段值自增 instance.decrement(field
-
node.js下LDAP查询实例分享
目标: 从一个LDAP Server获取uid=kxh的用户数据 LDAP地址为:ldap://10.233.21.116:389 在工程根目录中,先npm一个LDAP的访问库ldpajs npm install ldapjs 在工程根目录中,创建一个app.js var ldap = require("ldapjs"); //创建LDAP client,把服务器url传入 var client = ldap.createClient({ url: 'ldap://10.203.24.
-
简单封装js的dom查询实例代码
最近一直在啃犀牛书,有感,于是写了个简单的js的dom查询 $ = function (val) { switch(val.charAt(0)) { case '#' : return document.getElementById(val.substring(1)); break; case '.' : val = val.replace('.',''); if(document.getElementsByClassName) return document.getElementsByClas
-
Node.js操作MongoDB数据库实例分析
本文实例讲述了Node.js操作MongoDB数据库.分享给大家供大家参考,具体如下: Node.js操作MongoDB npm init npm i mongodb --save { "name": "test", "version": "1.0.0", "description": "", "main": "app.js", "scr
-
Node.js下自定义错误类型详解
前言 一般来说,很少人会考虑如何处理应用产生的错误的策略,调试的过程中,简单地利用console.log('error')定位错误,基本够用了,通过留下这些调试信息,能够为我们以后的调试过程中升了不少时间,提高了维护性.所以错误提示非常重要.同时,也会带来一些比较糟糕用法.最近的项目里就用到了自定义错误类型,觉得有必要深入了解一下,所以就写了这篇文章,方便自己和有需要的大家在需要的时候查阅. Subclassing Error 首先我们可以定义一个 Error 的子类.通过 Object.cre
-
xtemplate node.js 的使用方法实例解析
工程下安装XTemplate并使用它的方法实例说明: 1.安装xtpl 复制代码 代码如下: npm install xtpl xtemplate --save 2.在views目录添加test.xtpl文件,其内容为 this is {{title}}! 4.集成到Express中,只需要在app.js中,设置模板引擎即可 var print = require('./routes/print'); //此行代码放入app.js的require 声明代码段下边 app.set('view en
-
Node.js REPL (交互式解释器)实例详解
Node.js REPL (交互式解释器)实例详解 Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端,我们可以在终端中输入命令,并接收系统的响应. Node 自带了交互式解释器,可以执行以下任务: 读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中. 执行 - 执行输入的数据结构 打印 - 输出结果 循环 - 循环操作以上步骤直到用户两次按下 ctrl-c 按钮退出. 多行表达式
-
Node.js JSON模块用法实例分析
本文实例讲述了Node.js JSON模块用法.分享给大家供大家参考,具体如下: 一.JSON.stringify语法: JSON.stringify(value [, replacer] [, space]) value:是必选字段.就是你输入的对象,比如数组,类等. replacer(可选参数):它又分为2种方式,一种是数组,第二种是方法. (1)replacer为数组时,表示的是Key,只有在类中有出现过的Key的键值对(Key-Value)才会在转化的结果中出现. replacer数组仅
-
Django分组聚合查询实例分享
多表查询 1. 增删改 一对多:先一后多,外键可以为对象或依赖表的主键(publish and book) publish = Publish.objects.create() Book.objects.create(....publish=publish|publish_id=publish.id) 删: 默认存在级联删除 改: book修改外键,外键一定存在 多对多: 关系表的获取(book(主键) and author) book.author 增:book.author.add(作者对象
-
Node.js REPL (交互式解释器)实例详解
Node.js REPL (交互式解释器)实例详解 Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端,我们可以在终端中输入命令,并接收系统的响应. Node 自带了交互式解释器,可以执行以下任务: 读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中. 执行 - 执行输入的数据结构 打印 - 输出结果 循环 - 循环操作以上步骤直到用户两次按下 ctrl-c 按钮退出. 多行表达式
-
Node.js下向MySQL数据库插入批量数据的方法
项目(nodejs)中需要一次性插入多笔数据到数据库,数据库是mysql的,由于循环插入的性能太差,就像使用批量插入的方法提高数据的插入性能. 批量插入的数据库的表结构如下: 1.数据库连接 var mysql = require('mysql'); // 数据库信息 var connection = mysql.createConnection({ host : 'localhost', user : '数据库用户名', password : '数据库登录密码', database : '操作
随机推荐
- ABP(现代ASP.NET样板开发框架)系列之二、ABP入门教程详解
- 微信开发 网页授权获取用户基本信息
- MySQL中配置文件my.cnf因权限问题导致无法启动的解决方法
- 强大Vue.js组件浅析
- 关于eval 与new Function 到底该选哪个?
- 深究AngularJS——ng-checked(回写:带真实案例代码)
- iOS开发中不合法的网络请求地址如何解决
- JavaScript获取路径设计源码
- webpack构建react多页面应用详解
- JSP和Struts解决用户退出问题
- Javascript基础知识(三)BOM,DOM总结
- 一个CSS+jQuery实现的放大缩小动画效果
- C#创建临时文件的方法
- 简短几句 通俗解释javascript的闭包
- 详解微信小程序 相对定位和绝对定位
- Android BaseAdapter应用实例
- python解决js文件utf-8编码乱码问题(推荐)
- PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
- Ubuntu18 给terminal改个漂亮的命令行提示符的方法
- python画图的函数用法以及技巧