Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 浏览器刷新时的数据复制-Nodejs_Javascript_Node.js_Mustache - Fatal编程技术网

Javascript 浏览器刷新时的数据复制-Nodejs

Javascript 浏览器刷新时的数据复制-Nodejs,javascript,node.js,mustache,Javascript,Node.js,Mustache,我正在使用和Nodejs将选项列表加载到我站点上的下拉框中。每次刷新页面时,我都会在下拉框中获得重复的数据。如何防止这种情况。我希望我的问题是清楚的 您可以在下面的html代码片段中看到我是如何使用Mustache的 <div class="cd-filter-block"> <h4>Branches</h4> <div class="cd-filter-content">

我正在使用和Nodejs将选项列表加载到我站点上的下拉框中。每次刷新页面时,我都会在下拉框中获得重复的数据。如何防止这种情况。我希望我的问题是清楚的

您可以在下面的html代码片段中看到我是如何使用Mustache的

<div class="cd-filter-block">
                <h4>Branches</h4>
                <div class="cd-filter-content">
                    <div class="cd-select cd-filters">
                        <select class="filter" name="selectThis" type="radio" id="branches">
                            {{#branches}}
                                <option>{{name}}</option>
                            {{/branches}}
                        </select>
                    </div>
                </div>
            </div>

每次在服务器上调用
ListBranchs()
时,您都会向
filelist
数组中添加更多的项,因此项将累积在该变量中,并且由于
ListBranchs()
返回该变量,因此每次调用该变量时,它将返回一个越来越长的数组

我并不完全清楚您的代码试图做什么,但您至少可以通过更改以下内容来解决该问题:

var filelist = [];

function listBranches() {
  var files =  glob.sync(path).filter(isFolder);

  for (var i = files.length - 1; i >= 0; i--) {
    filelist.push({
      name:   files[i].split('/')[3],
    });
  };

  return filelist;
}
为此:

function listBranches() {
  var filelist = [];
  var files =  glob.sync(path).filter(isFolder);

  for (var i = files.length - 1; i >= 0; i--) {
    filelist.push({
      name:   files[i].split('/')[3],
    });
  };

  return filelist;
}

请记住,服务器上的模块级或全局变量从一个请求持续到下一个请求,并由所有请求共享。因此,不要使用模块级变量,除非这是预期的行为。

非常感谢,我非常感谢您的回答。它成功了,我现在知道如何做了,以备将来参考。非常感谢:)
function listBranches() {
  var filelist = [];
  var files =  glob.sync(path).filter(isFolder);

  for (var i = files.length - 1; i >= 0; i--) {
    filelist.push({
      name:   files[i].split('/')[3],
    });
  };

  return filelist;
}