You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js待办事项应用问题:无法获取URL中的待办项ID参数

解决Node.js待办事项应用中无法获取URL末尾ID的问题

你的代码存在几个关键问题,直接导致无法正确获取并使用URL中的待办项ID:

  1. 未从URL中提取真实ID:你声明了var id但未赋值,用route == "/${id}"做匹配时,id是undefined,实际匹配的是"/undefined",永远无法命中真实的请求路径。
  2. ID合法性判断错误:todoList.length == id的逻辑只能匹配ID等于数组长度的项,比如数组有3个元素时,只能删除ID为3的项,ID为1、2的项都会被判定为不存在。
  3. 拼写错误:"item not fount in the array"中的fount应为found。

修正后的代码示例

const url = require('url');

// -------------- DELETING ------------------
// 解析请求URL,提取路径中的ID
const parsedUrl = url.parse(req.url);
const pathSegments = parsedUrl.pathname.split('/').filter(seg => seg);
const id = parseInt(pathSegments[0], 10);

if (method === "DELETE" && !isNaN(id)) {
    // 验证ID是否在合法范围(假设ID从1开始对应数组索引0)
    if (id >= 1 && id <= todoList.length) {
        todoList.splice(id - 1, 1);
        res.end();
    } else {
        res.end("item not found in the array");
    }
}

关键修正说明

  • 使用Node.js内置的url模块解析请求URL,拆分路径后提取ID,并转为整数验证有效性。
  • 调整判断逻辑,确保所有在1到数组长度之间的ID都能被正确匹配,覆盖所有存在的待办项。
  • 修正拼写错误,返回正确的提示信息。

内容的提问来源于stack exchange,提问作者hazem mohamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:33:16