Node.js - 我可以在PhoneGap / Cordova应用程序上安装NPM包吗?

时间:2014-07-14 14:08:14

标签: mysql node.js cordova npm

感谢Cordova构建移动应用程序,而Cordova基于Node.js,我认为我可以在应用程序中使用NPM软件包。

例如,我希望我的移动应用与远程MySQL数据库通信。我想我可以使用mysql NPM软件包(https://www.npmjs.org/package/mysql)将MySQL驱动程序嵌入到我的移动应用程序中,但我没有看到任何文档或tutos将NPM软件包安装到我的移动应用程序中。< / p>

那么,是否有可能&#34;嵌入&#34; NPM打包成Cordova应用程序?是我的应用程序&#34;架构&#34;不好吗?

非常感谢你的帮助。

此致 西尔

4 个答案:

答案 0 :(得分:1)

您可以将节点包用于开发目的,例如使用grunt,bower等,但在应用程序内部您必须使用phonegap / cordova插件。

您不能在phonegap应用中使用节点模块,因为即使它们是js文件,它们也需要Node.JS运行时才能工作,您无法在移动平台上安装或嵌入NodeJS。

但是你可以使用任何没有Node依赖关系的JS库,我使用过的是moment.js,knockout.js,jquery,backbone。

希望它有所帮助。

答案 1 :(得分:0)

如果您的项目中未包含 sqlite插件,则代码中的语句将失败。

var db = window.sqlitePlugin.openDatabase({name: "test.db"});

此外,在使用cordova插件之前,您应该等待deviceready事件被解雇 您可以使用 window.openDatabase()调用来创建sqlite DB并且不需要sqlite插件。
以下是在您的app中使用openDatabase调用的代码。

// Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
        db.transaction(populateDB, errorCB, successCB);
    }

    // Populate the database
    //
    function populateDB(tx) {
        tx.executeSql('DROP TABLE IF EXISTS DEMO');
        tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
        tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
        tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
    }

    // Transaction error callback
    //
    function errorCB(err) {
        alert("Error processing SQL: "+err);
    }

    // Transaction success callback
    //
    function successCB() {
        alert("success!");
    }

以上代码段取自Cordova API文档。有关详细信息,请参阅here。即使文档是3.0,它应该适用于3.5

答案 2 :(得分:0)

TLDR 和简单

使用 npm 包:cordova-import-npm

答案 3 :(得分:0)

FYI

<块引用>

Cordova 用于将您的移动应用程序的客户端与 操作系统。 Nodejs 是一种服务器端技术。您可以构建两个组件 单独...您的cordova移动应用程序(或本机移动应用程序,或 无论如何),即客户端将与您的 nodejs 服务器交谈,即, 服务器。

cordova 应用程序有几个节点模块

nodejs-mobile-cordova

节点科尔多瓦