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