meteor 中的 mysql npm 模块

标签 mysql meteor npm

我正在使用 npm mysql 模块来查看是否可以对数据库运行查询以将数据提取到meteor.js 应用程序中。

我已经创建了一个基础 meteor 项目并完成了 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);
    });
  }
})

这是目前项目中唯一的文件。

当我尝试运行这个(meteor run)时,我收到以下错误。

=> 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

我有点不知道去哪里寻找这个。

有什么想法吗?我在这里遗漏了一些重要的东西吗?

彼得。

最佳答案

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

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

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

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

关于 meteor 中的 mysql npm 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26030716/

相关文章:

mysql - Laravel DB::raw 读取 where 子句中的第二个参数一个字符串而不是来自另一个表的动态列

php - 从 mysql 查询中排除短语

mysql - 如何清除/刷新 mysql innodb 缓冲池?

mysql - 在 MySQL 中,BIT 列是否适合存储 5、6 或 7 字节整数?

javascript - 使用meteor-autoform预览数据

ios - ObjectiveDDP 和 meteor 更新/插入集合

javascript - 从包中的meteor主应用程序访问对象

npm - Artifactory:在 'npmjs' 处找不到 npm 存储库索引

javascript - Node/NPM : If I upgrade my node version, 我应该重建包锁定文件吗?

javascript - 为什么我的 cmd 给出找不到 Node 模块的错误?