没有框架的 NodeJS:findById
NodeJS without frameworks: findById
我是初学者,正在尝试使用 NodeJS 和 JSON 文件创建函数 findByID 作为没有框架的数据库,代码:
const http = require("http");
const url = require("url");
const fs = require("fs");
const querystring = require("querystring");
const data = fs.readFileSync("./data/data.json");
let todos = JSON.parse(data);
const server = http.createServer((req, res) => {
const urlparse = url.parse(req.url, true);
if (urlparse.pathname == "/todos" && req.method == "GET") {
const search = urlparse.search;
if (search) {
const [, query] = urlparse.search.split("?");
const data = querystring.parse(query);
todos = todos.filter((todo) => todo.id === data.id);
res.end(JSON.stringify(todos, null, 2));
}
}})
当我第一次与邮递员联系时,一切都很好。
1st request
当我第二次检查响应时 window 有一个空数组。2nd request
每个请求使用不同的 ID。
我没有看到 todos 被定义,所以我假设它是全局的,然后这一行在每个请求中改变它:
todos = todos.filter((todo) => todo.id === data.id);
另一件事是,如果 id 是唯一的,您可以使用 todos.find
来获得第一个匹配项。
所以改用新变量并找到:
const todoMatch = todos.find((todo) => todo.id === data.id);
我是初学者,正在尝试使用 NodeJS 和 JSON 文件创建函数 findByID 作为没有框架的数据库,代码:
const http = require("http");
const url = require("url");
const fs = require("fs");
const querystring = require("querystring");
const data = fs.readFileSync("./data/data.json");
let todos = JSON.parse(data);
const server = http.createServer((req, res) => {
const urlparse = url.parse(req.url, true);
if (urlparse.pathname == "/todos" && req.method == "GET") {
const search = urlparse.search;
if (search) {
const [, query] = urlparse.search.split("?");
const data = querystring.parse(query);
todos = todos.filter((todo) => todo.id === data.id);
res.end(JSON.stringify(todos, null, 2));
}
}})
当我第一次与邮递员联系时,一切都很好。 1st request
当我第二次检查响应时 window 有一个空数组。2nd request
每个请求使用不同的 ID。
我没有看到 todos 被定义,所以我假设它是全局的,然后这一行在每个请求中改变它:
todos = todos.filter((todo) => todo.id === data.id);
另一件事是,如果 id 是唯一的,您可以使用 todos.find
来获得第一个匹配项。
所以改用新变量并找到:
const todoMatch = todos.find((todo) => todo.id === data.id);