2013-12-09 4 views
0

Я пытаюсь запустить node.js на моем виртуальном ящике Vagrant. Когда я пытаюсь подключить node.js к моей базе данных, он не работает, как показано ниже. Может ли кто-нибудь объяснить мне, как я должен это исправить?Почему не удается подключить node.js к моей базе данных?

% sequelize -m 
Loaded configuration file "config/config.json". 
Using environment "development". 
You need to install mysql package manually 

TypeError: Cannot call method 'createConnection' of undefined 
    at module.exports.connect (/usr/local/lib/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:259:28) 
    at Object.pool.Pooling.Pool.create (/usr/local/lib/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:125:19) 
    at createResource (/usr/local/lib/node_modules/sequelize/node_modules/generic-pool/lib/generic-pool.js:258:13) 
    at dispense (/usr/local/lib/node_modules/sequelize/node_modules/generic-pool/lib/generic-pool.js:250:9) 
    at Object.me.acquire (/usr/local/lib/node_modules/sequelize/node_modules/generic-pool/lib/generic-pool.js:316:5) 
    at module.exports.enqueue (/usr/local/lib/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:312:19) 
    at module.exports.ConnectorManager.query (/usr/local/lib/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:164:15) 
    at module.exports.Sequelize.query (/usr/local/lib/node_modules/sequelize/lib/sequelize.js:252:34) 
    at null.<anonymous> (/usr/local/lib/node_modules/sequelize/lib/query-interface.js:689:32) 
    at null.<anonymous> (/usr/local/lib/node_modules/sequelize/lib/emitters/custom-event-emitter.js:26:18) 

Я могу гарантировать, что моя БД и работает и соединения:

% mysql -u root -pmyPassWord 


Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 45 
Server version: 5.5.34-0ubuntu0.12.04.1 (Ubuntu) 
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 
mysql> 

Я также могу показать вам, что я установил пакет MySQL с помощью NPM:

% sudo npm install -g [email protected] 
npm http GET https://registry.npmjs.org/mysql/2.0.0-alpha8 
npm http 304 https://registry.npmjs.org/mysql/2.0.0-alpha8 
npm http GET https://registry.npmjs.org/require-all/0.0.3 
npm http GET https://registry.npmjs.org/bignumber.js/1.0.1 
npm http 304 https://registry.npmjs.org/bignumber.js/1.0.1 
npm http 304 https://registry.npmjs.org/require-all/0.0.3 
[email protected] /home/vagrant/.nvm/v0.10.22/lib/node_modules/mysql 
├── [email protected] 
└── [email protected] 

% sudo npm install -g mysql 
npm http GET https://registry.npmjs.org/mysql 
npm http 304 https://registry.npmjs.org/mysql 
npm http GET https://registry.npmjs.org/require-all/0.0.3 
npm http GET https://registry.npmjs.org/bignumber.js/1.0.1 
npm http 304 https://registry.npmjs.org/bignumber.js/1.0.1 
npm http 304 https://registry.npmjs.org/require-all/0.0.3 
[email protected] /home/vagrant/.nvm/v0.10.22/lib/node_modules/mysql 
├── [email protected] 
└── [email protected] 
+0

Ваш DB работает, но ваш пакет MySQL не настроен правильно , (Следовательно, «вам нужно установить пакет mysql вручную»). Я никогда не испытывал этого, но это определенно ваша проблема. – jraede

+0

Если я успешно установил модуль node.js mysql с использованием npm, как показано выше, почему он говорит, что пакет MySQL настроен неправильно? Похоже, должно быть. –

+0

Согласен. Я не знаю, почему это так. Но это ясно говорит об этом по какой-то причине, и именно здесь происходит эта проблема. Я предполагаю, что это как-то связано с вашей системой и ограничениями, которые она может поместить в библиотеку MySQL или сам узел. – jraede

ответ

0

I решил эту проблему. Проблема заключалась в том, что узел искал свои модули в/usr/local/lib/node_modules , но npm устанавливал их в ~/.nvm/v0.10.22/lib/node_modules.

Так я заменил/USR/местные/Библиотека/node_modules с мягким переходом на ~/.nvm/v0.10.22/Lib/node_modules

Смежные вопросы