gpt4 book ai didi

javascript - module.exports 的 nodejs 缓存问题

转载 作者:行者123 更新时间:2023-11-30 15:58:20 26 4
gpt4 key购买 nike

我是nodejs的新手。

我有这个脚本:book.js

var page = 0;

exports.setPageCount = function (count) {
page = count;
}

exports.getPageCount = function(){
return page;
}

连同以下脚本:scripts.js

var bookA = require('./book');

var bookB = require('./book');

bookA.setPageCount(10);

bookB.setPageCount(20);

console.log("Book A Pages : " + bookA.getPageCount());

console.log("Book B Pages : " + bookB.getPageCount());

我得到的输出:

Book A Pages : 20
Book B Pages : 20

所以,我修改了脚本:

module.exports = function(){
var page = 0;

setPageCount : function(count){
page = count;
},

getPageCount : function(){

return page;
}

}

我期待以下输出:

Book A Pages : 10
Book B Pages : 20

但仍然得到原来的结果,有没有人知道我在哪里犯了错误?

最佳答案

有几种方法可以解决这个问题,您最后一次尝试几乎是有效的——像这样修改您的模块:

module.exports = function() {
var pages = 0;
return {
getPageCount: function() {
return pages;
},
setPageCount: function(p) {
pages = p;
}
}
}

你的用法是这样的:

var bookFactory = require('./book');
var bookA = bookFactory();
var bookB = bookFactory();
bookA.setPageCount(10);
bookB.setPageCount(20);
console.log("Book A Pages : " + bookA.getPageCount());
console.log("Book B Pages : " + bookB.getPageCount());

关于javascript - module.exports 的 nodejs 缓存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38160628/

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