流星中的mysql npm模块

时间:2014-09-25 04:48:03

标签: mysql meteor npm

我正在玩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

我在哪里寻找这个有点不知所措。

有什么想法吗?我错过了一些重要的东西吗?

彼得。

1 个答案:

答案 0 :(得分:0)

由于Meteor使用自己的包管理器,因此它与npm不直接兼容。要使用npm包,您需要:

  • meteorhacks:npm包添加到您的项目中。

  • 使用您定义的包在项目目录中创建packages.json文件:

    {
      "mysql": "2.5.1"
    }
    
  • 使用Meteor.npmRequire代替require