所以我在这里拉扯我的头发,我尝试过的一切都不起作用。我有一个简单的 Node.js 应用程序结构,如下所示:
var express = require('express');
var path = require('path');
var mysql = require('mysql');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
//Database handler
//Here is completed with the data
var con = mysql.createConnection({
host: "",
user: "",
password: "",
database: ""
});
con.connect(function (err) {
if(err) throw err;
console.log("connected");
});
app.listen(55132, function () {
console.log("Server running at port 55132");
});
module.exports = app;
非常简单,有一些路由,但没什么奇怪的。我需要在其他脚本中使用变量 con,所以我尝试了以下方法:
module.exports.database = con;
所以我应该能够在我的index.js脚本中使用它(参见var indexRouter
),所以这里是index.js脚本:
var express = require('express');
var router = express.Router();
let app = require('../app');
let connection = app.database;
console.log(app); //Here returns {} so I can´t access any of the properties of the module
/* GET home page. */
router.get('/', function(req, res, next) {
}
module.exports = router;
我不知道该怎么办,有什么建议吗?
最佳答案
for forther reading i recommend you to read this https://nodejs.org/api/modules.html#modules_exports_shortcut
只需将应用程序文件导出更改为
module.exports = {app,con};
在你的索引文件中
const {app,con} = require('./app');
let connection = con;
关于javascript - 使用 module.exports 通过脚本使用变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53726130/