因此我在这里拉头发,而我尝试过的所有方法都无效。我有一个简单的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;
一些建议,我不知道该怎么办?
答案 0 :(得分:1)
进一步阅读,我建议您阅读 https://nodejs.org/api/modules.html#modules_exports_shortcut
只需将您的应用文件导出更改为
module.exports = {app,con};
以及您的索引文件
const {app,con} = require('./app');
let connection = con;
答案 1 :(得分:0)
您可以尝试
例如:
var function = function(coid, userid, callback) {}
exports.function = function ;
以您的情况
exports.database = con;
现在它应该可以工作了,您不需要在上面添加模块。