Javascript 特快专递及;JS:数组返回为空,填充较晚
我有一个route方法,可以在http响应中返回文件名列表 我用于响应的数据结构最终被填充,尽管是在返回响应之后,这意味着我得到的是一个空的、无用的响应 我可以看到数据结构最终被填充,正如日志内容的输出所示 代码:Javascript 特快专递及;JS:数组返回为空,填充较晚,javascript,arrays,express,response,Javascript,Arrays,Express,Response,我有一个route方法,可以在http响应中返回文件名列表 我用于响应的数据结构最终被填充,尽管是在返回响应之后,这意味着我得到的是一个空的、无用的响应 我可以看到数据结构最终被填充,正如日志内容的输出所示 代码: app.get('/hello',函数(req,res){ var路径={}; fs.readdir(“./uploads”,函数(err,items){ 控制台日志(项目); for(var i=0;i只需将res.json()调用移动到回调中,移动到for循环之后 编辑1: ap
app.get('/hello',函数(req,res){
var路径={};
fs.readdir(“./uploads”,函数(err,items){
控制台日志(项目);
for(var i=0;i只需将res.json()
调用移动到回调中,移动到for
循环之后
编辑1:
app.get('/hello', function (req, res) {
var paths = [];
fs.readdir('./uploads', function (err, items) {
console.log(items);
for (var i=0; i<items.length; i++) {
paths.push(items[i]);
console.log(items[i]);
}
res.json(paths);
});
});
app.get('/hello',函数(req,res){
var路径=[];
fs.readdir(“./uploads”,函数(err,items){
控制台日志(项目);
对于(var i=0;i您应该在读取回调中的文件目录后返回响应
下面是相同的代码段:
app.get('/hello',function(req,res){
var paths = {};
fs.readdir('./uploads', function(err, items) {
console.log(items);
for (var i=0; i<items.length; i++) {
paths[i] = items[i];
console.log(items[i]);
}
res.json(paths);
});
});
app.get('/hello',函数(req,res){
var路径={};
fs.readdir(“./uploads”,函数(err,items){
控制台日志(项目);
对于(var i=0;iDo),您的意思是问题在于res.json(this.paths)
返回一个空的JSON响应?另外,如果路径
对象将具有数字键,那么最好将其设置为一个数组。在这种情况下,您不必使用for
循环来填充数组,除非您对每个项执行其他操作。
app.get('/hello',function(req,res){
var paths = {};
fs.readdir('./uploads', function(err, items) {
console.log(items);
for (var i=0; i<items.length; i++) {
paths[i] = items[i];
console.log(items[i]);
}
res.json(paths);
});
});