Javascript 尚未为上下文加载模块名“mysql”:。使用require([])http://requirejs.org/docs/errors.htmlnotloaded
我正在visual studio社区中使用Apache cordova工具。我正在用Javascript编写一个混合应用程序。设置与MySQL数据库的连接时遇到此错误: 尚未为上下文加载模块名mysql:\ux。使用require[] 我的代码是Javascript 尚未为上下文加载模块名“mysql”:。使用require([])http://requirejs.org/docs/errors.htmlnotloaded,javascript,mysql,node.js,cordova,module,Javascript,Mysql,Node.js,Cordova,Module,我正在visual studio社区中使用Apache cordova工具。我正在用Javascript编写一个混合应用程序。设置与MySQL数据库的连接时遇到此错误: 尚未为上下文加载模块名mysql:\ux。使用require[] 我的代码是 var mysql = require('mysql'); var connection = mysql.createConnection({ host : "localhost",
var mysql = require('mysql');
var connection = mysql.createConnection({
host : "localhost",
user : "root",
password: "root"
});
connection.connect();
connection.query("use verify");
var strQuery = "select * from table1";
connection.query( strQuery, function(err, rows){
if(err) {
throw err;
}else{
console.log( rows );
}
});
错误弹出在第一行。
我使用这两种方法安装了mysql
npm install mysql
及
使用通常的命令提示符和node.js,但问题仍然存在。
我还将mysql文件夹从nodejs复制到应用程序的根文件夹,但问题仍然存在。免责声明:我从未使用过Cordova,因此不知道这是否有效: RequireJS中require的语义与NodeJS中的稍有不同:NodeJS同步加载模块。因此,您的代码可以在之后立即处理。然而,在RequireJS中,代码是异步加载的。因此,我们必须指定一个回调,在加载模块时执行什么操作。因此,如果这是问题的根源,您的代码应该如下所示:
require( ['mysql'], function( mysql ) {
var connection = mysql.createConnection({
host : "localhost",
user : "root",
password: "root"
});
connection.connect();
connection.query("use verify");
var strQuery = "select * from table1";
connection.query( strQuery, function(err, rows){
if(err) {
throw err;
}else{
console.log( rows );
}
});
});
错误来自require.js,它对require使用的语义与node稍有不同。我在我的应用程序文件夹中包含require.js,所以我缺少什么?标准requirejs语法是require['module'],function module{/*your code*/};因此,当加载模块时,会触发回调,但加载没有阻塞。但是我从来没有和Cordova一起使用过。我对js是个新手,你能用你的格式写上面的代码吗?SCRIPT5007:第23行的未处理异常,第21列(毫秒)-appx://io.cordova.blankcordovaapp2/www/index.html 0x800a138f-JavaScript运行时错误:无法获取未定义或空引用文件的属性“createConnection”:index.html,第23行,第21列弹出此错误是否确实可以访问目标环境中的MySQL数据库?从未听说过MySQL服务器在手机上运行。它目前没有在手机上运行。我首先在win 8.1上测试代码。我找不到任何直接从Cordova访问MySQL的文档。所有结果都在服务器上使用MySQL,Cordova访问该服务器。如果他们想在没有服务器的情况下在应用程序中存储数据,则使用本地存储。但是,如果mysql模块未加载,请参见如何连接服务器?
require( ['mysql'], function( mysql ) {
var connection = mysql.createConnection({
host : "localhost",
user : "root",
password: "root"
});
connection.connect();
connection.query("use verify");
var strQuery = "select * from table1";
connection.query( strQuery, function(err, rows){
if(err) {
throw err;
}else{
console.log( rows );
}
});
});