通过Connect Bridge访问Node.js中的Exchange日历。

通过Connect Bridge访问Node.js中的Exchange日历。

Michal Hainc 连接器, 技术方面 留下评论

微软总是为他们的系统提供API和SDK,这些API和SDK在.NET语言中很容易使用。

从Node.js应用访问这种基于微软的系统,特别是那些不在微软Windows平台上托管的系统,可能会比较棘手。

我知道你可能会反对,说通常会有web服务和API & SDK一起发布,但是手心手背,你准备好了马上快速高效地使用它们吗?我敢打赌,你一定在期待一些学习曲线的延迟。

如果一个集成平台允许你通过执行简单的SQL语句来创建、检索、更新和删除主要业务系统中的数据,岂不是更容易?起初,这听起来可能很危险--那些CRUD操作不会威胁到数据的完整性吗?

事实上,这种可能性是存在的--通过使用。 Connect Bridge 平台,我将在本教程中使用Connecting Software。它是一个商业工具,但你可以免费访问其试用版。你为什么不试一试呢?

入门

申请您的Connect Bridge试用版,下载并激活您的许可证,请按以下步骤操作。 教程视频.

我们还需要一台安装了Node.js的机器。我们将在运行CentOS 7.x发行版的Linux机器上进行演示。

为环境做准备

我推测你已经选好了自己喜欢的Linux发行版。第一步是在你的环境中安装Node.js。在CentOS上,我使用了我最喜欢的包管理器Yum。如果你不确定如何在你的操作系统中安装Node.js,请参考以下内容 node.js部署指南页面.

你现在需要连接到你的目标系统,例如,微软Exchange。为此,运行Connect Bridge管理工作室和  

  1. 为Exchange添加一个账户(账户-添加账户)。在添加账户时,你应该选择连接器微软Exchange,并使用你的Exchange登录凭证 
  2. 打开 "新查询 "选项,然后是 "连接浏览器"。找到Exchange连接器并展开它,直到你看到DefaultConnection。右键单击DefaultConnection,选择Get Connection string。复制ODBC的连接字符串,因为你将需要它来传递给脚本。 
  3. 使用 "新建查询 "选项,测试出一个可以访问Exchange中所需内容的查询。 P请注意,虽然看起来我们在直接使用一个数据库,但事实并非如此。Connect Bridge是在访问API,然后把它当作一个数据库来展示。一旦你有了你的查询,请复制它,因为你需要把它传递给脚本。 

解决办法


更新:下面提到的Connect Bridge游乐场服务已经不提供了。本文将很快进行相应更新。

同时,如果你想在你的Node.js集成项目中使用Connect Bridge,请不要犹豫,在下方留言或直接与我们联系。 专家.


该解决方案的程序如下。

  1. 为解决方案创建一个文件夹。我把它命名为 "nodearticle",原因很明显。
  2. 为nodejs应用创建一个manifest文件。文件名是package.json。找到下面的文件内容。
{
  "name":"nodejsExchangeDemo"。
  "版本","0.0.1","0.0.1",
  "description":"演示如何在nodejs中访问exchnage日历"。
  "main"。"app.js",
  "作者":{
    "名称"。"",
    "电子邮件"。""
  },
  "依赖关系"。{
  }
}

3.这个动作我们需要机器连接到互联网。打开你喜欢的shell。执行下面的命令,为我们的应用程序安装一个名为connect-bridge-node的依赖模块。

npm install connect-bridge-node -save

在这个操作之后,connect-bridge-node依赖应该出现在我们的package.json manifest文件中。
4.下一步我们将稍微利用一下connect-bridge-node模块(由我编写)本身的源码。我们将把文件test.js从 模块的github仓库.并修改它,使它看起来像这样(我们将在代码注释中解释代码本身)。

//要求模块的依赖性并传递你的连接参数。
//要获得你的连接桥节点证书,请按照以下步骤操作
//关于 "如何查到我的证书?
//本条
var cbnode = require('connect-bridge-node')('pg.connecting-software.com', 4433, 'michalhainc0036',
					 '29e)5d2bc9044e2c42878A4A63BC6777', 'EX2010_PLAYGROUND_michalhainc0036');
 
//连接桥操作的错误处理程序
函数 onError(err) {
    console.error(err);
}
 
//连接事件处理程序--成功连接后执行。
//到Connect Bridge集成
//服务器实例
函数 onConnected() {
    console.log('连接到Connect Bridge')。
    console.log('Inserting record to Exchange Calendar...');
    //连接成功后,我们将
	//创建一个预约并调用onRecordInserted。
	//事后回调
    cbnode.execute("INSERT INTO [Appointment] (Subject, StartDate, EndDate, Location) "+。
				   "VALUES(?,?,?,?);"。
				   //插入语句的参数
				   ['我的约会','2015-10-11 10:00','2015-10-11 10:00','布拉迪斯拉发']。
				   onRecordInserted, onError)。)
}
 
功能 onRecordInserted() {
    //从Exchange日历中获得的前100个约会。
    //从我们的CB游乐场帐户
    //我们将只检索某些字段
    console.log("从Exchange日历中检索前100个约会...")
    cbnode.execute( "SELECT TOP 100 Subject, Location, StartDate, EndDate "+)
					"FROM[预约];"。
					//空的参数数组
					[], onRecordsRetrieved, onError);
}
 
//disconnected事件处理程序--当成功断开连接时执行。
//从Connect Bridge集成
//服务器实例
函数 onDisconnected() {
    console.log('Disconnected')。
}
 
//接收到的记录事件处理程序--当有数据记录时执行。
//从Connect Bridge接收到之前执行的SQL语句。
函数 onRecordsRetrieved(result)
{
    console.log(result)。
    cbnode.disconnect(onDisconnected, onError)。
}
 
//开始连接到Connect Bridge集成服务器。
cbnode.connect(onConnected, onError)。

5.使用以下命令通过命令行运行你的app.js。


node app.js

6.app.js脚本将插入一个约会到您的CB游乐场Exchange日历。并检索前100个约会后,从您的日历。
7.如果一切顺利,你应该会看到以下输出。

8.而voi-la,在CB娱乐城Exchange服务器的Outlook网页访问中应该有你的预约显示。

如何查询自己的证件?

下面是一个简单的演练,找出你的凭证。

下载 Connect Bridge游乐场客户端包 你有一个超链接指向它在你的注册电子邮件)。如果你还没有一个免费的游乐场帐户,请随时注册。
解压软件包中的内容,找到CBQueryAnalyzer.bat文件并运行它。

Query Analyzer应用程序会询问你关于注册ODBC驱动程序的问题,(只需要为应用程序,而不是为你的app.js节点项目)。
在左侧连接面板中右击EX2010连接。选择 "编辑连接"。

进入 "高级 "选项卡,并将下划线的凭证复制到你的app.js脚本中。 除了在我们的例子中应该是4433这个端口参数。

发表评论

电子邮件地址不会被公开。 必填项已用*标注