javascript - javascript 中奇怪的关闭问题

标签 javascript node.js express

在我的例子中,我为什么会获得数组的 ['undefined1','undefined2'] 值?我把它推到了同样的范围内。

router.post('/add', function(req, res) {
    var imageArr = [];
    for(var i = 1; i <= 4; i++) {
        if (req.body["photo" + i]) {
            imageArr.push(req.body.photo + '' + i);
        }
    }

    console.log(imageArr) // working fine here, returning correct values like ['something','something']

    if (req.body.is_update) {
        console.log(imageArr) // working fine here too, returning correct values
    } else {
        console.log(imageArr) // not working fine here, returning undefined1, undefined2.. 
    }
}

可能是因为异步吗?

最佳答案

我想我应该把我的评论变成这个问题的正式答案,这样它就不会悬而未决。

您需要将脚本的这部分 imageArr.push(req.body.photo+''+i); 替换为 imageArr.push(req.body["photo"+我]);。这两种情况的控制台输出示例可以在 fiddle. 中看到。

关于javascript - javascript 中奇怪的关闭问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34822854/

相关文章:

node.js - 具有 Node.js 后端的移动应用程序 - 为客户端开发选择什么框架?

node.js - 如何通知客户端当前的执行状态

javascript - 如何以编程方式创建用户可以下载的 Javascript 客户端文件?

javascript - node.js 向客户端发送数据?

javascript - Socket IO 房间和名称列表

node.js - 如何通过标签向 Imgur API 请求随机图像?

javascript - Axios Http 客户端 - 如何使用表单参数构造 Http Post url

javascript - Chrome 错误 : 'unknown message reserved_word' on JavaScript enum declaration

javascript - 无法加载 Handlebars 辅助函数

node.js - 在 express.js 中,req.protocol 没有为我的安全链接选择 "https"。它总是选择 "http"