#mysql #node.js
#mysql #node.js
Вопрос:
Только что вошел в node и сегодня впервые работаю с удаленными машинами (через aws). Я написал файл, который принимает входные данные (передается в него по каналу), и, надеюсь, после вашей помощи часть этих входных данных будет сохранена в базе данных.
Файл нормально принимает входные данные, когда я запускаю «имя файла узла», однако, когда я представляю часть базы данных, он жалуется на неожиданный идентификатор: function (exports, require, module, __filename, __dirname) { insert mysql
Ниже приведено начало моего файла:
const mysql = require('mysql');
const connection = mysql.createConnection({
host : 'localhost',
user : 'user10',
password : 'abcdef',
database : 'mydb'
});
connection.connect();
Я думаю, что я установил mysql через npm; в каталоге файла есть папка модулей узла, в которой есть папка с именем mysql. Работают ли модули узла, только если я на самом деле запускаю сервер или имею app.js или что-то в этом роде? Этот материал настолько новый для меня, что я не уверен, что полностью понимаю, что именно такое node; Я знаю, что мог бы написать это проще на Ruby, но я хотел попробовать что-то новое.
Комментарии:
1. обычно нет требований к серверу или чему-либо еще, если только ваша база данных сама не заявляет об этом. Любая
myFile.js
подойдет.
Ответ №1:
Работают ли модули узла, только если я на самом деле запускаю сервер или имею app.js или что-то в этом роде?
Вы можете запускать любые скрипты, написанные на языке JavaScript, с Node, включая программное обеспечение, работающее как веб-серверы.
Скрипт с именем, hello.js
содержащий одну строку console.log('Hello World!);
, может быть запущен с помощью команды node hello.js
.
require
Функция используется для включения другого файла JavaScript или модуля node, управляемого с помощью npm
.
Согласно документации:
Если идентификатор модуля, переданный require(), не является собственным модулем и не начинается с ‘/’, ‘../’ или ‘./’, то Node.js запускается в родительском каталоге текущего модуля и добавляет /node_modules и пытается загрузить модуль из этого местоположения. Node не будет добавлять node_modules к пути, который уже заканчивается на node_modules.
В вашем случае вам нужно будет выполнить npm install
команду, за которой следует каждое ваше имя пакета require()
в сценариях, которые вы планируете запускать, включая, mysql
например.
Вам не нужно будет запускать эту команду, пока вы не удалите node_modules
папку. Если вы не хотите постоянно устанавливать пакеты, я бы посоветовал вам создать пакет, запустив npm init
, а затем добавляя --save
флаг в npm install
каждый раз, когда вы хотите добавить пакет постоянно, список пакетов будет сохранен внутри package.json
файла.
Вы сможете запускать npm install
без каких-либо других аргументов для установки всех ваших --save
общих пакетов, пока package.json
файл присутствует.
npm init
npm install --save mysql
rm -rf node_modules
npm install