我正在玩npm mysql模块,看看我是否可以对数据库运行查询以将数据提取到meteor.js应用程序中。
我已经创建了一个基础流星项目并完成了sudo npm install -g mysql。
项目中的代码在这个阶段非常简单(这可能是问题)。我的server / startup.js文件中有以下内容
var mysqlDriver = Meteor.npmRequire('mysql');
var connection;
Meteor.methods({
'connectDB': function connectDB(){
connection = mysqlDriver.createConnection({
host: '10.1.23.2',
user: 'user',
password: 'password'
});
},
'queryDB': function queryDB() {
connection.connect();
connection.query('dl.SETTLEMENTDATE, dl.INITIALMW, dl.TOTALCLEARED, dl.SEMIDISPATCHCAP from bocorock.DISPATCHLOAD dl where dl.duid in ("BOCORWF1") order by dl.settlementdate desc limit 100', function(err, rows, fields) {
console.log('err', err);
console.log('rows', rows);
console.log('fields', fields);
});
}
})
这是目前项目中唯一的文件。
当我尝试运行此(流星跑)时,我遇到以下错误。
=> Started MongoDB.
W20140925-14:38:04.535(10)? (STDERR)
W20140925-14:38:04.595(10)? (STDERR) /home/pnunn/.meteor/packages/meteor-tool/.1.0.31.7wezrh++os.linux.x86_64+web.browser+web.cordova/meteor-tool-os.linux.x86_64/dev_bundle/lib/node_modules/fibers/future.js:173
W20140925-14:38:04.596(10)? (STDERR) throw(ex);
W20140925-14:38:04.596(10)? (STDERR) ^
W20140925-14:38:04.596(10)? (STDERR) TypeError: Object #<Object> has no method 'describe'
W20140925-14:38:04.596(10)? (STDERR) at app/server/packages/npm-container/package.js:4:11
W20140925-14:38:04.596(10)? (STDERR) at app/server/packages/npm-container/package.js:23:3
W20140925-14:38:04.596(10)? (STDERR) at /home/pnunn/src/meteor/mysqlTest/.meteor/local/build/programs/server/boot.js:161:10
W20140925-14:38:04.597(10)? (STDERR) at Array.forEach (native)
W20140925-14:38:04.597(10)? (STDERR) at Function._.each._.forEach (/home/pnunn/.meteor/packages/meteor-tool/.1.0.31.7wezrh++os.linux.x86_64+web.browser+web.cordova/meteor-tool-os.linux.x86_64/dev_bundle/lib/node_modules/underscore/underscore.js:79:11)
W20140925-14:38:04.597(10)? (STDERR) at /home/pnunn/src/meteor/mysqlTest/.meteor/local/build/programs/server/boot.js:82:5
=> Exited with code: 8
我在哪里寻找这个有点不知所措。
有什么想法吗?我错过了一些重要的东西吗?
彼得。
答案 0 :(得分:0)
由于Meteor使用自己的包管理器,因此它与npm不直接兼容。要使用npm包,您需要:
将meteorhacks:npm包添加到您的项目中。
使用您定义的包在项目目录中创建packages.json
文件:
{
"mysql": "2.5.1"
}
使用Meteor.npmRequire
代替require
。