简而言之,我试图创建一个简单的api,它将返回具有匹配ID的用户。我使用postman向使用Node.js和Express创建的本地主机发送请求。当我请求第一个用户时,它工作得很好,但当请求“john”时,它会抛出一个错误。我正在编写一门udemy课程的代码,但除了材料过时之外,我不知道问题是什么。错误为“错误[ERR_HTTP_HEADERS_SEND]:将标头发送到客户端后无法设置标头”
null
users: [
{
id: "123",
name: "Sally",
email: "sally@gmail.com",
password: "bananas",
entries: 0,
joined: new Date(),
},
{
id: "124",
name: "John",
email: "john@gmail.com",
password: "apples",
entries: 0,
joined: new Date(),
},
],
};
app.get("/profile/:id", (req, res) => {
const { id } = req.params;
let found = false;
database.users.forEach((user) => {
if (user.id === id) {
found = true;
return res.json(user);
}
if (!found) {
res.json("User not found");
}
});
});
null
从MDN Web文档:
除了引发异常之外,没有任何方法可以停止或中断foreach()
循环。如果需要这样的行为,foreach()
方法是错误的工具。
提前终止可通过以下方式完成:
...
循环的
- [
Array.Prototype.every()
][every] - [
Array.Prototype.some()
][some] - [
Array.Prototype.find()
][find] - [
Array.Prototype.findIndex()
][findIndex]
这意味着您的循环将运行所有元素,并实际上多次调用
res.json
,导致err_http_headers_send
错误。有很多方法可以解决这个问题,这里有一个例子:
app.get("/profile/:id", (req, res) => {
const {id} = req.params;
for (const user of database.users) {
if (user.id === id) {
return res.json(user);
}
}
res.json("User not found");
});
输出8 好吧,我给出了 neg=-1,low=0、b=10、键盘=2、驱动器=3 的值,我的数组是 [3 1] [5 2 8] 我已经添加了键盘和驱动器值,将其存储在max数组中。当我将这些最大数组值与b if(max[i]进行比较时
很抱歉问了一个关于已经讨论过很多次的论点的非常基本的问题,我就是想不出答案。我试着在论坛上搜索已经在主题上提出的问题,但没有找到确切的答案(或者不理解)。 当以不同顺序调用时,为什么此函数会打印两次从i到10的数字?它不应该按同样的顺序打印出来吗?我一直听说递归就是这样工作的:每个函数在其代码中调用另一个相同的函数,只应用于较小的域,直到满足结束条件为止。此时,它应该返回(回溯)到原始函数;这就是
这是我要测试的类 这是测试类 当我做这个测试的时候 我创建这些类时参考了其他已有的代码,来自不同的地方,并且没有真正理解如何进行注释(部分原因是时间不够),所以如果有人能告诉我,不仅是如何修复,而且还有为什么我错了,我会非常感激的! 编辑: 我做了@Nikolas Charalambidis建议的更改(谢谢!),所以我的类现在看起来与 通过稍加搜索,从这个SO答案中,我觉得我不应该@autowir
问:为什么我只收到以下使用 YouTube Data V3 API 执行的操作中的 1 个视频?我尝试从中提取视频的示例频道(https://www.youtube.com/user/JayLenosGarage/videos)有多个视频。 我正在尝试从特定频道的Youtube数据API v3中获取所有视频及其关联的ID。让我们使用示例通道JayLenosGarage。 所以关注YouTube上的
我的申请中有一个奇怪的现象。 我在一个本地无状态EJB中,希望调用另一个本地无状态EJB,这将导致以下异常: 当我研究这个问题的时候,我发现通常原因是在尝试调用第二个(内部)EJB之前,第一个EJB内部的代码中存在运行时异常。 显然,即使捕获并处理了运行时异常,它的存在也足以将事务标记为回滚。到目前为止,这是可以理解的。 问题是我不知道相关代码中有任何运行时异常。但我能够找到导致这种情况的一行代码
初学者问题,很抱歉,如果这不是一个合适的地方,请尝试学习在中逻辑是如何工作的,我无法理解这一点 我希望它会说“是的!”如果是A、A、D或D,而是z,但出于某种原因,它会说“是的!”无论第一个符号是什么,都会断开,并且只检查第二个符号是否为z。