Могу ли я запустить один файл .js с node для взаимодействия с (локальной) базой данных?

#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