感谢Cordova构建移动应用程序,而Cordova基于Node.js,我认为我可以在应用程序中使用NPM软件包。
例如,我希望我的移动应用与远程MySQL数据库通信。我想我可以使用mysql NPM软件包(https://www.npmjs.org/package/mysql)将MySQL驱动程序嵌入到我的移动应用程序中,但我没有看到任何文档或tutos将NPM软件包安装到我的移动应用程序中。< / p>
那么,是否有可能&#34;嵌入&#34; NPM打包成Cordova应用程序?是我的应用程序&#34;架构&#34;不好吗?
非常感谢你的帮助。
此致 西尔
答案 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)
使用 npm 包:cordova-import-npm
答案 3 :(得分:0)
Cordova 用于将您的移动应用程序的客户端与 操作系统。 Nodejs 是一种服务器端技术。您可以构建两个组件 单独...您的cordova移动应用程序(或本机移动应用程序,或 无论如何),即客户端将与您的 nodejs 服务器交谈,即, 服务器。
cordova 应用程序有几个节点模块
nodejs-mobile-cordova
节点科尔多瓦