【问题标题】:Node.js GET, POST, DELETE methods [closed]Node.js GET、POST、DELETE 方法 [关闭]
【发布时间】: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


【解决方案1】:

我建议查看 body-parser 中间件 https://www.npmjs.com/package/body-parser

以下内容应该有助于您尝试做的事情

const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())

app.post("/gallery", (req, res) => {

    const { gallery } = req.body;

    gallerSchema.galleries.push(gallery);

    return res.sendStatus(201);

});

发布以下 JSON 正文

{
  "gallery": {
    "gallery2": {
      "path": "Dogs",
      "name": "Dog"
    }
  }
}

【讨论】:

  • 谢谢!我在画廊架构中得到了 null :( 我使用了你的代码并通过邮递员创建了这个 POST:``` { "gallery2" : { "path": "Dogs", "name": "Dog" } } ```跨度>
  • 我根据实现的代码修改了答案以显示帖子正文的外观。
猜你喜欢
  • 2020-04-11
  • 2015-01-17
  • 2013-08-26
  • 2023-03-09
  • 1970-01-01
  • 2021-02-01
  • 2019-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多