gpt4 book ai didi

javascript - 在nodejs中将变量从一个js传递到另一个js文件

转载 作者:行者123 更新时间:2023-11-29 06:55:33 25 4
gpt4 key购买 nike

我刚刚开始使用 Nodejs,所以请耐心等待

我将数据库设置存储在第一个 JS connect.js 上:

var mysql = require('mysql');

module.exports = function(connectDB) {
var connectDB = {};

connectDB.connection = mysql.createConnection({
//db params
});

connectDB.connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}

console.log('connected as id ' + connection.threadId);
});

return connectDB;
};

然后我将查询存储在另一个 JS 文件中,我们称之为 dbManager.js :

var db = require('./connect')(connectDB);

var test_connection = connectDB.connection.query('SELECT * FROM `test`', function (error, results, fields) {
console.log(results);
});

exports.test = test_connection;

我的目标是将 connection 变量从 connect.js 传递到 dbManager.js,这样我就可以用它来运行一些查询.

上面的代码返回一个错误,表示变量没有成功传递到dbManager.js:

ReferenceError: connectDB is not defined

提前致谢

最佳答案

语法错误是因为您无法使用 var 在对象文字中定义变量。

例如,您不能执行以下操作,

var t = {
"r": 4,
var g = 5;
};

你可以做到这一点,

var t = {
"r": 4,
"g" : 5
};

要访问对象的属性,您可以执行以下操作:

console.log(t["r"]);
console.log(t.g);

在您的代码中,问题是在对象文字中声明变量。你可以做到,

var connectDB = {};
connectDB.connection = mysql.createConnection({
//DB params
});
connectDB.connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}

console.log('connected as id ' + connectDB.connection.threadId);
});

return connectDB;

编辑1根据OP的评论,

connect.js:-更改 - 使用 module.exports 功能,无需 connectDB 参数。

  var mysql = require('mysql');
var connectDB = {};

connectDB.connection = mysql.createConnection({
//db params
});

connectDB.connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}

console.log('connected as id ' + connectDB.connection.threadId);
});

module.exports = connectDB;

dbManager.js:-

var db = require('./connect');//removed the parameter
//use db variable to process queries as returned from the above require statement.
var test_connection = db.connection.query('SELECT * FROM `test`', function (error, results, fields) {
console.log(results);
});

exports.test = test_connection;

关于javascript - 在nodejs中将变量从一个js传递到另一个js文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45830239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com