【问题标题】:endpoint URI in express js APIexpress js API中的端点URI
【发布时间】:2017-09-18 21:09:58
【问题描述】:

我对用于测试任何 API 输出的 URI 感到困惑。例如,我有一段代码使用 POST 方法将用户写入数据库。

用户控制器.js

router.post('/', function (req, res) {
    User.create({
            name : req.body.name,
            email : req.body.email,
            password : req.body.password
        }, 

现在我正在将此路由器导出到另一个文件。

var Usercontroller = require('./user/UserController.js');
var users = app.use('/users',UserController);

现在,当我开始使用此 URI 监听端口 8082 时: http://localhost:8082/users 我得到了预期的结果。

我想更改发送到 router.post 的请求字符串。 我试图改变 var users = app.use('/users',UserController); 但这不起作用。任何人都可以解释 URI 在 express 或 node 中是如何工作的吗?我正在尝试理解这个概念!

【问题讨论】:

  • 那么您是否希望能够访问来自 req.body 的字符串?
  • 没有 req.body 将包含我以 JSON 格式显示的数据键值对。我想更改 URI 中传递的 id 以在数据库中添加用户: localhost:port/users 目前是我所拥有的,但我想使用 localhost:port/addusers
  • @LovikaJain 比你刚刚做的: var users = app.use('/addusers',UserController);
  • @Burimi 我已经尝试过了,但这不起作用并将其作为输出: Error
    Cannot POST /addusers
    我正在使用 postman 测试 API
  • 这很奇怪。当您实施该更改时,服务器是否重新启动?你在用nodemon吗? Burimi 说的应该行得通。

标签: javascript node.js express


【解决方案1】:

Express 在它们之间添加路由。

您的 UserController 以“/”为目标,您添加了“/users”。

您的 API 是:POST http://localhost:8082/users/

如果你想在 '/users' 之后添加一个 API,你必须在 UserController 中声明你的路由器。

如果您想将 GET 添加到此 url 'http://localhost:8082/users/foo'。您可以将此代码添加到 UserController :

router.get('/foo', function (req, res) { // code } Express 会将路由器一起添加。

您的 API 将是这样的:

您可以使用这样的可配置参数:

router.delete('/:uuid', function (req, res) { // :uuid is in req.params.uuid }

【讨论】:

    猜你喜欢
    • 2021-03-05
    • 2016-04-21
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 2021-08-04
    • 2019-09-11
    • 2023-02-07
    • 2011-11-07
    相关资源
    最近更新 更多