我很好奇express set('name', ??)函数是如何工作的。
我知道它将一些东西附加到可以被get('name')利用的express应用程序中。它是在存储对你赋值对象的引用,还是实际在存储值?
例如:
//mysql2.js
var mysql2 = require('mysql2');
//Set up connection
module.exports = mysql2.createPool({
host: 'localhost',
user: 'user',
database: 'database',
password: 'password',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});在我的express应用程序中(
const app = express();
app.set('mysql2', require('./mysql2'));我将存储对mysql2.createPool函数的引用,还是实际上将打开池并在整个应用程序中传递它?
发布于 2019-11-09 07:17:23
这种行为并不依赖于set函数,但是从你传入的属性来看,javascript中的标量对象是复制的,复杂的对象是通过引用传递的。因此,在这里的mysql2属性中存储了一个对对象的引用,该对象是调用mysql2.createPool函数的结果。
https://stackoverflow.com/questions/58773703
复制相似问题