Javascript 移动服务服务器脚本(计划)能否访问其他Sql Azure数据库?

Javascript 移动服务服务器脚本(计划)能否访问其他Sql Azure数据库?,javascript,azure,azure-mobile-services,Javascript,Azure,Azure Mobile Services,我希望使用Azure移动服务创建计划作业 由于该服务最终将调用另一个云服务(网站),我想知道移动脚本是否可以访问云服务已经访问的数据库 我知道您可以为移动脚本指定一个数据库(我选择了免费登录),但似乎无法确定您是否可以通过该脚本访问其他数据库 假设 var todoItemsTable = databases.getDatabase('NonMobileSqlDb').tables.getTable('TodoItems'); 我已经检查过了(你能将Azure移动服务与Azure云服务混合使用

我希望使用Azure移动服务创建计划作业

由于该服务最终将调用另一个云服务(网站),我想知道移动脚本是否可以访问云服务已经访问的数据库

我知道您可以为移动脚本指定一个数据库(我选择了免费登录),但似乎无法确定您是否可以通过该脚本访问其他数据库

假设

var todoItemsTable = databases.getDatabase('NonMobileSqlDb').tables.getTable('TodoItems');
我已经检查过了(你能将Azure移动服务与Azure云服务混合使用吗?),但它似乎没有涵盖与数据库对话的脚本

一些背景

移动服务将(按计划)调用执行常规操作的web服务(经授权)。我想锁定这个服务(没有ssl),一种方法是生成一个服务可以使用的密钥,云服务可以验证该密钥。此密钥将存储在数据库中,既可以访问,也只能在短时间内使用。

是的,您可以

您需要使用以下来自的示例(使用)进行连接:

要使用节点sqlserver,必须在应用程序和 指定一个连接字符串。连接字符串应该是ODBC 中返回的值 第三节。代码应类似于 以下:

可以通过使用指定Transact-SQL语句来执行查询 查询方法。下面的代码创建一个HTTP服务器和 从测试表中的ID、Column1和Column2行返回数据 查看网页时:

var http=require('http'))
var port=process.env.port | 3000;
http.createServer(函数(req,res){
query(conn_str,“SELECT*fromtesttable”,函数(err,results){
如果(错误){
res.writeHead(500,{'Content-Type':'text/plain'});
res.write(“获取错误:-”(“+err”);
决议结束(“”);
返回;
}
res.writeHead(200,{'Content-Type':'text/plain'});
对于(var i=0;i

非常感谢@GauravMantri&@hhaggan在这方面的帮助。

请看一看和。啊,好的,这样一个“纯”的nodejs路由就可以创建连接并这样做。顺便说一句,Windows Azure移动服务现在可以接受与NPM合作。此链接可能有助于理解如何做到这一点。毕竟,Windows Azure移动服务ice是一个基于Node Js的解决方案,我认为,@hhaggan“你现在可以从任何移动服务客户端应用程序调用此API”<好文章,谢谢。此文档似乎已经从web上消失了。谢谢你把它放在这里。
var todoItemsTable = databases.getDatabase('NonMobileSqlDb').tables.getTable('TodoItems');
var sql = require('node-sqlserver');
var conn_str = "Driver={SQL Server Native Client 10.0};Server=tcp:{dbservername}.database.windows.net,1433;Database={database};Uid={username};Pwd={password};Encrypt=yes;Connection Timeout=30;";
var http = require('http')
var port = process.env.port||3000;
http.createServer(function (req, res) {
    sql.query(conn_str, "SELECT * FROM TestTable", function (err, results) {
        if (err) {
            res.writeHead(500, { 'Content-Type': 'text/plain' });
            res.write("Got error :-( " + err);
            res.end("");
            return;
        }
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        for (var i = 0; i < results.length; i++) {
            res.write("ID: " + results[i].ID + " Column1: " + results[i].Column1 + " Column2: " + results[i].Column2);
        }
        res.end("; Done.");
    });
}).listen(port);