[英]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.