簡體   English   中英

NodejS express ReferenceError:未定義連接

[英]NodejS express ReferenceError: connection is not defined

我正在使用以下代碼創建一個簡單的服務器應用程序

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: connection is not defined at /Users/arjunbhandari/Desktop/GL-IT/backend/routes/html-routes.js:5:5

在過去的 6 個小時里,我一直在掙扎,無法理解問題所在。

謝謝

如錯誤所述, ./routes/html-routes.js中沒有定義(或繼承) connection

您仍然可以將connection屬性作為第二個參數傳遞給導出的 function:

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);

您應該檢查您的路由實現邏輯,因為這不應該是使用數據存儲連接的最佳設計方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM