首页 > 解决方案 > 在 Express Router (node.js) 中使用 for 循环

问题描述

我正在尝试像这样使用 for 循环。但是我在终端中没有得到“console.log(i)”,而我确实得到了“console.log(req.body)”。请帮忙。

const express = require("express");
const router = new express.Router();

router.post("/basic", async (req, res) => {
  try {
    res.send(req.body);
    console.log(req.body)

    for (let i=0; i < 5, i++; ) {
      console.log(i);
    }

  } catch (e) {
    res.status(400).send(e);
  }
});

module.exports = router;

标签: javascriptnode.jsexpress

解决方案


当您声明变量时let i;它具有价值undefinedundefined所以javascript中有两种类型:

undefined当变量未定义(不存在)时,您可能会得到,其次变量存在但值是undefined变量存在。

接下来是操作for中的下一个,它退出 for 循环,所以这就是你没有得到输出的原因。i < 5 (undefined < 5)falseconsole.log

@Rap Sherlock 建议的最简单的解决方案let i = 0;

编辑后:

代码中还有一个错字:

for (let i=0; i < 5, i++; ) { // should be

// need to use ; instead of ,
for (let i = 0; i < 5; i++) {
  console.log(i);
}

推荐阅读