Titanium ACS问题

时间:2015-01-22 08:37:27

标签: titanium

尝试使用Titanium Studio创建ACS服务器。以pixgrid(https://github.com/appcelerator/pixgrid/)为例,但在尝试本地运行时总会出错;控制台输出:

  

[INFO]安装依赖项......

     

[INFO]已安装依赖项。

     

[INFO] socket.io已启动

     

[ERROR]发生错误。 TypeError:无法调用方法' init'未定义的       在Object.start(/app.js:8:7)

app.js列表:

var ACS = require('acs').ACS,
    logger = require('acs').logger,
    express = require('express'),
    partials = require('express-partials');

// initialize app (setup ACS library and logger)
function start(app) {
  ACS.init('***', '***');
  logger.setLevel('DEBUG');

  //use connect.session
  app.use(express.cookieParser());
  app.use(express.session({ key: 'node.acs', secret: "secret" }));

  //set favicon
  app.use(express.favicon(__dirname + '/public/images/favicon.ico'));

  //set to use express-partial for view
  app.use(partials());

  //Request body parsing middleware supporting JSON, urlencoded, and multipart
  app.use(express.bodyParser());
}

// release resources
function stop() {

}

当然,我有我的OATH钥匙和***的秘密。从命令行运行时(acs run)。

我正在运行Titanium Studio,内部版本为3.4.1.201410281727。

然而,我可以发布该服务,然后从云中运行它,没有任何问题。对于开发,这不是理想的,所以想在本地运行它(本地node.ACS服务器)。

我想安装内容(仅使用默认设置)或权限一定有问题。任何人都知道如何解决这个问题?现在花了几个小时搜索互联网,但似乎是唯一一个有这个问题的人。不知道还有什么可以尝试的。 感谢您阅读这篇文章。如果您需要更多信息来帮助我,请告诉我。

1 个答案:

答案 0 :(得分:1)

好的,我发现了问题。他们在上次升级中改变了使用ACS的方式。

经典模式是:

var ACS = require('acs').ACS;
ACS.init('<ACS Key>', '<ACS secret');

现在他们改变了它并且ACS是一个“模块”,就像任何其他的一样,所以你必须使用新的方式。在package.json文件中将其添加为依赖:

"dependencies": {
    "acs-node": ">=0.9.2"
}

安装它:npm install acs-node

现在,您可以在app.js文件的新格式中使用它:

var ACS = require('acs-node');
ACS.init('<App Key>');

这一切都在这里解释:http://docs.appcelerator.com/cloud/latest/#!/guide/node_acs