Ответ 1
Я просто столкнулся с той же проблемой и обнаружил, что это потому, что модуль был установлен в:
./node_modules/node-mysql/node_modules/
Итак, я просто переместил их все:
mv ./node_modules/node-mysql/node_modules/* ./node_modules/
Я новичок в nodejs. Для подключения mysql я установил mysql
на node с помощью команды
npm install mysql
Во время установки я не получал никаких ошибок. Затем я попытался выполнить следующий код,
var mysql = require("mysql");
Однако при попытке выполнить это будет отображаться следующая ошибка.
C:\node\mysql>node app.js
module.js:340
throw err;
^
Error: Cannot find module 'mysql'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\node\mysql\app.js:1:75)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Я попробовал некоторое предложение, подобное установке mysql в глобальном масштабе,
npm install -g mysql
Но ничего не работает. Помогите пожалуйста!!!
Обратите внимание на мою рабочую среду,
ОС: Windows7 Node версия: 0.10.15 Версия NPM: 1.3.5
Я просто столкнулся с той же проблемой и обнаружил, что это потому, что модуль был установлен в:
./node_modules/node-mysql/node_modules/
Итак, я просто переместил их все:
mv ./node_modules/node-mysql/node_modules/* ./node_modules/
Мой node
установлен в C:\some-dir\nodejs-0.10.35\
Сначала перейдите в тот же каталог node
, который установлен: cd C:\some-dir\nodejs-0.10.35
Тогда npm install mysql
Я помещал свои приложения в один каталог: C:\some-dir\nodejs-0.10.35\applications\demo.js
Он работает.
Вы можете исправить это с помощью
ln -s /usr/local/lib/node_modules /YOURPROJECTFOLDER/node_modules
Похоже, вы можете быть смущены тем, как работает npm install
.
npm install -g mysql
будет устанавливаться глобально не локально, как вы предлагаете.
npm install mysql
будет устанавливаться локально, помещая модуль в ./node_modules/mysql
. Это означает, что выполняемый script должен выполняться из одного каталога, содержащего node_modules
.
У меня была такая же проблема (я был в Windows 8). Я пробовал npm install mysql
и npm install -g mysql
и не работал.
Оказалось, что мне нужно открыть приложение Node.js Command Prompt 'вместо обычного приложения командной строки. Все отлично поработало.
Я не знаю, что делает их командная строка под капотом, но я бы предположил, что это имеет какое-то отношение к изменениям пути и среды. Вы можете попробовать.
Перейдите в папку /node_modules
, которая находится внутри основного каталога, и установите mysql, нажав следующую команду: sudo npm install mysql
Это создаст папку с именем mysql
внутри папки /node_modules
.
Теперь запустите приложение с помощью команды node app.js
внутри основной папки. Он должен работать и устанавливать соединение с сервером mysal.
Это решение от кодерса отлично работало.
Мой node установлен в C:\some-dir\nodejs-0.10.35\
Сначала перейдите в тот же каталог node: cd C:\some-dir\nodejs-0.10.35
Затем npm устанавливает mysql
Я помещаю свои приложения в один каталог: C:\some-dir\nodejs-0.10.35\applications\demo.js
Спасибо.
Я обнаружил, что это происходит, если вы запускаете Установка npm без наличия зависимостей, определенных в вашем пакете. json... i.e.
...
"author": "Author",
"dependencies" : {
"mysql": "2.12.0",
},
"license": "ISC"
...
Определите зависимости... затем запустите
npm install
npm install mysql --save
Это обновит файл package.json.
Возможно, вам придется обновить файл package.json. Используйте следующую команду
npm install mysql --save