微软总是为他们的系统提供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部署指南页面.
现在您需要连接到您的目标系统,例如,Microsoft Exchange。为此,请运行Connect Bridge管理工作室和
- 为 Exchange 添加一个账户(账户 - 添加账户)。添加账户时,应选择 Microsoft Exchange 连接器,并使用您的 Exchange 登录凭证
- 打开 "新建查询 "选项,然后打开 "连接浏览器"。找到Exchange连接器并展开它,直到看到DefaultConnection。右键单击DefaultConnection并选择Get Connection string。复制ODBC连接字符串,因为你需要它来传递给脚本。
- 使用 "新建查询 "选项来测试一个可以在Exchange中访问所需内容的查询。 P请注意,虽然看起来我们是在直接使用数据库,但事实并非如此,Connect Bridge是在访问API,然后把它当作数据库来显示。Connect Bridge正在访问API,然后把它当作一个数据库来显示。一旦你有了你的查询,复制它,因为你需要把它传递给脚本。
解决办法
更新:下面提到的Connect Bridge游乐场服务已经不提供了。本文将很快进行相应更新。
同时,如果你想在你的Node.js集成项目中使用Connect Bridge,请不要犹豫,在下方留言或直接与我们联系。 专家.
该解决方案的程序如下。
- 为解决方案创建一个文件夹。由于显而易见的原因,我将其命名为 ‘nodearticle’。.
- 为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这个端口参数。

