NodejS express ReferenceError: соединение не определено - PullRequest
1 голос
/ 25 мая 2020

Я создаю простое серверное приложение, используя следующий код

const express = require('express');
const mysql = require('mysql');
const PORT = process.env.PORT || 3000;

const app = express();

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'user',
  password: 'password',
  database: 'mydata',
});

connection.connect(function (err) {
  err ? console.log(err) : console.log(connection);
});

require('./routes/html-routes')(app);

app.listen(PORT, () => {
  console.log('app running on port %s', PORT);
});

module.exports = app;

на файловом сервере. js

, а затем маршрут в файле html -routes. js

const mysql = require('mysql');

module.exports = function (app) {
  app.get('/', function (req, res) {
    connection.query('select * from mydata;', function (err, data) {
      err ? res.send(err) : res.json({ mydata: data });
    });
  });
};

для получения данных из базы данных

Я получаю сообщение об ошибке ReferenceError: соединение не определено в / Users / arjunbhandari / Desktop / GL-IT / backend / routes / html -routes. js: 5: 5

Я боролся последние 6 часов и не могу понять проблему.

Спасибо

1 Ответ

1 голос
/ 25 мая 2020

Согласно сообщению об ошибке, connection не определен (или унаследован) в . / Routes / html -routes. js.

Вы все еще можете пройти свойство connection в качестве второго аргумента экспортируемой функции:

const mysql = require('mysql');

module.exports = function (app, connection) {
  app.get('/', function (req, res) {
    connection.query('select * from mydata;', function (err, data) {
      err ? res.send(err) : res.json({ mydata: data });
    });
  });
};

затем обновите вызов монтирования маршрута в основном файле сервера:

require('./routes/html-routes')(app, connection);

Вам следует просмотреть logi реализации вашего маршрута c, поскольку это не должно быть лучшим подходом к проектированию для использования подключений к хранилищу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...