在我非常简单的应用程序中,我有一个用户路线,当我浏览到http://localhost/api/users
时会被点击我是否可以处理帖子或获取该网址的请求而无需在路线上添加任何额外内容?使用下面的代码,当我发布到http://localhost/api/users/new但不发送到http://localhost/api/users并且当我尝试获取http://localhost/api/users/13而不是http://localhost/api/users
时,会触发路由处理程序我知道我可以使用router.post(' /',function(req,res){});发布到http://localhost/api/users/,但额外的斜线似乎不优雅
app.js
var express = require('express');
var users = require('./routes/user');
var app = express();
app.use('/api/users', users);
module.exports = app;
路由\ user.js的
var express = require('express');
var User = require('../models/user');
var router = express.Router();
router.post(function(req, res) {
// post to root
});
router.post('/new', function(req, res) {
// post to /new
});
router.get(function (req, res, next) {
// get root
});
router.get('/:id', function (req, res, next) {
// get /id
});
module.exports = router;
答案 0 :(得分:3)
在routes / user.js中,你可以简单地写:
router.post('/', function (req, res, next) {
// post to /api/user or /api/user/
});
router.get('/', function (req, res, next) {
// get /api/user or /api/user/
});
这适用于:http://localhost/api/users
和http://localhost/api/users/
此外,在网址末尾添加/
并不是一件好事!
答案 1 :(得分:1)
你可以使用这样的空路线:
router.get("", function (req, res, next) {
// get root
});
您将能够访问/api/user
以及/api/user/
答案 2 :(得分:0)