【发布时间】:2020-05-11 21:23:59
【问题描述】:
我正在学习 Node.js!我很困惑。
如何创建良好的 HTTP 请求:
1) GET来自gallerySchema的所有画廊;
2) POST 在 gallerySchema 的画廊中新建画廊;
3) 删除它;
4) GET 图库的{path},例如:
app.get('/gallery/:path', (req, res) => {
let gallery = gallerySchema.galleries.find(g => g.path === req.params.path) //
if (!gallery) res.status(404).send('Not found')
res.send(gallery)
})
而且...gallerySchema 应该在 controllers/gallerySchema.js 还是在 modules/...?然后我应该在 router.js 中要求它。 对吧?
const gallerySchema = {
"galleries": [{
"gallery": {
"path": "Animals",
"name": "Animals",
"images": [{
"path": "elephant.jpg",
"fullpath": "Animals/elephant.jpg",
"name": "Elephant",
"modified": "2017-04-19T08:11:00.0+0200"
},
{
"path": "lion.jpg",
"fullpath": "Animals/lion.jpg",
"name": "Lion",
"modified": "2017-04-19T08:11:32.0+0200"
}
]
}
}]
}
// GET method
app.get('/gallery', (req, res) => {
res.send(gallerySchema.galleries);
});
// POST?
通过我的 POST 方法,我得到了名称和路径在 gallerySchema 中,而不是在画廊中。
谢谢!
【问题讨论】:
-
按照现在的方式将数据存储在内存中并不是一个好习惯。这些画廊应该存储在数据库中以保持持久性。如果应用程序崩溃,您将丢失您创建/修改的任何/所有画廊等...假设这只是为了概念证明或经验/实践,我已经发布了您如何处理的答案 POST 请求。
-
好的!我不会存储这样的 IRL 数据!永远不会:) 再次感谢您!
标签: javascript node.js api express http