NodejS表达ReferenceError:未定义连接

时间:2020-05-25 16:20:30

标签: mysql node.js express

我正在使用以下代码创建一个简单的服务器应用程序

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;

在server.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 个答案:

答案 0 :(得分:1)

由于错误状态,在 ./ routes / html-routes.js 中没有定义(或继承)connection

您仍然可以将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);

您应该查看自己的路由实现逻辑,因为这不是使用数据存储连接的最佳设计方法。