在Titanium应用中使用node.js模块

Use node.js module in a Titanium app?

本文关键字:node js 模块 Titanium 应用      更新时间:2023-09-26

目前我正在编写一个小型的Titanium应用程序进行测试。我需要包括一个模块从NPM钛。

在这种情况下,我尝试https://github.com/oortcloud/node-ddp-client

我有错误说钛无法找到模块。

我用于include的代码是

var DDPClient = require("./lib/node_modules/ddp");

我可以在钛合金中使用node.js模块吗?

谢谢

require('./lib/node_modules/ddp/lib/ddp-client.js');

这个模块很可能不适合你。它有很多使用NodeJS特定模块和特定api的依赖项。

幸运的是,有人已经编写了一个模块来使用DDP连接到Meteor服务器(顺便说一下,我恳求完全不了解这个协议和堆栈):

https://github.com/yubozhao/Ti.Meteor

您可以使用试试这个模块https://github.com/smclab/titaniumifier

从Node包中获取Titanium™SDK CommonJS模块!

Titanium现在部分支持npm模块:http://docs.appcelerator.com/platform/latest/#!/guide/Node.js_Support

对于Alloy项目,在app/lib中执行npm install命令,以便您的包存储在app/lib/node_modules中。

对于非合金项目,将npm安装在Resources/中,以便您的软件包存储在Resources/node_modules中。

请注意,依赖本地节点模块的包可能会出现问题。

当然可以,为什么不能呢?

下面是一个在Alloy项目中使用node模块的例子:

1。安装q.js,它将创建一个名为"node module"的文件夹,并包含一些文件:

$ npm install q
$ find node_module
node_modules/
node_modules/q
node_modules/q/README.md
node_modules/q/queue.js
node_modules/q/package.json
node_modules/q/q.js
node_modules/q/LICENSE

2。复制q.js到你的app/lib/文件夹:

$ mkdir app/lib
$ cp node_modules/q/q.js app/lib
在你的Titanium文件中声明:
// in app/alloy.js
Q = require('q')

4。在你的控制器中使用它:

// app/controllers/index.js:
var defer = Q.defer();

参考:http://developer.appcelerator.com/question/154529/how-to-use-nodejs-modules-with-titanium#answer-285207