我以前的同学和我使用React、Express、Node和MongoDB创建了一个博客应用程序,后端托管在www.example.com上,前端托管在Netlify上。Render.app and the frontend is on Netlify.
我的同事写了一篇博客文章,但是现在课程和项目都结束了,我发现写一篇博客文章大约需要1分20秒,这是非常非常长的时间。
我在代码中添加了控制台时间日志,发现服务器博客控制器文件花费的时间最长。我认为代码看起来很好?我也研究了潜在的修复方法,如承诺冲突,但我不知道是什么导致了这个问题。是代码本身还是使用www.example.com的免费层的结果?Render.app's free tier?
服务器端:
型号:
const blogSchema = new mongoose.Schema(
{
title: { type: String, required: true },
description: { type: String, required: true },
content: { type: String, required: true },
image: String,
tags: [String],
author: { type: mongoose.Schema.ObjectId, ref: "User" },
},
{
timestamps: true,
}
);
控制器:
async function createBlog(req, res, next) {
let userId = req.user._id;
try {
const data = req.body;
let currentUser = await User.findById(userId);
data.author = userId;
const newBlog = await Blog.create(data);
currentUser.blogs.push(newBlog._id);
await currentUser.save();
res.json(newBlog);
} catch (error) {
res.status(400).json(error);
}
}
客户端:
提交博客文章数据:
async function handleSubmit(e) {
e.preventDefault();
const formData = new FormData();
Object.keys(blog).forEach((key) => {
if (blog[key].constructor === Array) {
blog[key].forEach((item) => {
formData.append(key, item);
});
} else {
formData.append(key, blog[key]);
}
});
try {
createABlog(formData).then((res) => {
navigate("/");
});
} catch (err) {
console.log(err.response.data);
}
}
发出发布请求:
export const createABlog = async (blog) => {
try {
const token = tokenService.getToken();
let res = await fetch(`${BASE_URL}/api/blogs`, {
method: "POST",
headers: {
Authorization: "Bearer " + token,
},
body: blog,
});
return res.json();
} catch (error) {
console.log(error);
}
};
如果这是一个愚蠢的问题,或者我没有提供足够的信息,请提前道歉-我以前没有在这里发布过。任何帮助或指导,以其他资源将不胜感激!
1条答案
按热度按时间tcomlyy61#
在我看来在1分20秒内,
甚至来自承诺的拒绝响应也将更快地到来。
我不想冒犯你,你试着做了一些事,但你做了什么?
我想,如果你从你在互联网上找到的教程中获取代码
然后用它做一个项目,有那么好吗?
人们花时间,实验,测试mongodb数据库中的代码,以获得快速响应,为什么网络游戏工作这么快?
你可以用react和javascript很快地构建一个项目,它会工作,mongodb库也会工作,
但为了更好、更快、更安全地工作,为了保留客户数据
安全,此结构不会在5分钟内创建。
要获得更快的速度,您需要深入研究一些小细节,解析并测试每个阶段的请求速度。
据我所知,在您的
数据库。
如果数据库中有,例如30,000个条目,那么使用非优化的mongodb查询,将会有延迟。
一些提示
即使在免费主机上,查询速度也相当标准。
创建索引以支持查询/
限制查询结果的数量以减少网络需求/
使用投影仅返回必要的数据/
使用递增运算符执行操作服务器端/