【问题标题】:mysql npm module in meteor流星中的mysql npm模块
【发布时间】:2014-09-25 15:14:52
【问题描述】:

我正在使用 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.9.3 并且仍然有同样的错误。流星列表显示自动发布 1.0.0 将整个数据库发布给所有客户端不安全 1.0.0 默认情况下允许所有数据库写入流星平台 1.1.1 在您的应用程序中包含一组标准的流星包meteorhacks:npm 1.2.0 使用 npm 模块你的 Meteor App npm-container 1.0.0 包含你所有的 npm 依赖项如果这对任何人都意味着什么。

标签: mysql meteor npm


【解决方案1】:

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

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

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

    {
      "mysql": "2.5.1"
    }
    
  • 使用Meteor.npmRequire 而不是require

【讨论】:

  • 是的..现在就是这样。见 var mysqlDriver = Meteor.npmRequire('mysql');应该说我正在使用meteorhacks:npm sorry。
猜你喜欢
  • 1970-01-01
  • 2014-09-11
  • 1970-01-01
  • 2014-08-02
  • 2019-01-26
  • 1970-01-01
  • 2017-09-05
  • 2015-01-20
  • 1970-01-01
相关资源
最近更新 更多