尝试根据ExpressJS中的对象数组设置路由,但是在尝试访问路径时遇到错误。
错误是这样的:
TypeError:shares [Symbol.iterator]不是函数 在路由器 (C:\用户\ rutherfordc.AA \文件\ GitHub的\ transientComplete \瞬态服务器\路由\ shares.js:10:18) 在Layer.handle [as handle_request](C:\ Users \ rutherfordc.AA \ Documents \ GitHub \ transientComplete \ transient-server \ node_modules \ express \ lib \ router \ layer.js:95:5) 在trim_prefix(C:\ Users \ rutherfordc.AA \ Documents \ GitHub \ transientComplete \ transient-server \ node_modules \ express \ lib \ router \ index.js:317:13) 在C:\ Users \ rutherfordc.AA \ Documents \ GitHub \ transientComplete \ transient-server \ node_modules \ express \ lib \ router \ index.js:284:7 在Function.process_params(C:\ Users \ rutherfordc.AA \ Documents \ GitHub \ transientComplete \ transient-server \ node_modules \ express \ lib \ router \ index.js:335:12) 在下一个(C:\ Users \ rutherfordc.AA \ Documents \ GitHub \ transientComplete \ transient-server \ node_modules \ express \ lib \ router \ index.js:275:10) at expressInit(C:\ Users \ rutherfordc.AA \ Documents \ GitHub \ transientComplete \ transient-server \ node_modules \ express \ lib \ middleware \ init.js:40:5) 在Layer.handle [as handle_request](C:\ Users \ rutherfordc.AA \ Documents \ GitHub \ transientComplete \ transient-server \ node_modules \ express \ lib \ router \ layer.js:95:5) 在trim_prefix(C:\ Users \ rutherfordc.AA \ Documents \ GitHub \ transientComplete \ transient-server \ node_modules \ express \ lib \ router \ index.js:317:13) 在C:\ Users \ rutherfordc.AA \ Documents \ GitHub \ transientComplete \ transient-server \ node_modules \ express \ lib \ router \ index.js:284:7
来自这样的代码:
var router = (shares) => {
for(let share of shares){
shareRouter.route(`/${share.name}`)
.get((req, res) => {
var fileList = [];
fs.readdir(share.location, (err, files) => {
for(let file in files){
fileList.push(file);
shareRouter.route(`/${file}`)
.get((req, res) => {
var filePath = path.join(share.location, file);
res.download(filePath, `${file}`);
});
}
}).then(()=>{
res.render('shareFiles', fileList);
});
});
}
};
共享是在路由器函数调用之前定义的。应该发生的是,当应用程序启动时,它会查看先前导入的配置文件,获取要共享的文件夹列表,并根据对象的name属性设置它们,然后浏览文件夹中的每个文件,根据文件名创建路径,然后将其传递到提供文件路径链接的pug模板。