节点路由器.delete函数返回404 Not Found
Node Router .delete function returns 404 Not Found?
我正在学习Node/Angular,我遇到了一个问题。我正在测试使用邮差发送HTTP请求到我的API,并在一个名为API .js
的节点路由文件中处理DELETE请求。api.js
var User = require('../models/User');
var config = require('../../config');
var jwt = require('jsonwebtoken');
var bodyParser = require('body-parser');
module.exports = function(app, express) {
var apiRouter = express.Router();
apiRouter.use(function(req, res, next) {
//Validate users access token on each request to our API.
var token = req.body.token || req.params.token || req.headers['x-access-token'];
if (token) {
jwt.verify(token,config.tokenKey, function(err, decoded) {
if (err) {
return res.status(403).send({ success: false, message: 'Authorization required.'});
} else {
req.decoded = decoded;
next();
}
});
} else {
res.status(403).send({ success: false, message: 'No token provided.'});
next();
}
});
apiRouter.get('/users/me', function(req, res) {
return res.send(req.decoded);
});
apiRouter.post('/users/register', function(req, res) {
var user = new User;
user.name = req.body.name;
user.username = req.body.username;
user.password = req.body.password;
user.save(function(err) {
if (err) {
return res.send(err);
} else {
//User saved!
return res.json({ message: 'User created', id: user.id });
}
});
});
apiRouter.get('/users', function(req, res) {
User.find(function(err, users) {
return res.send(users);
});
});
//READ
apiRouter.get('/users/:user_id', function(req, res) {
User.findById(req.params.user_id, function(err, user) {
if (err) return res.send(err);
if (user) return res.send('Welcome ' + user.username);
if (!user) return res.send('Invalid User');
});
});
//UPDATE
apiRouter.put('users/:user_id', function(req, res) {
User.findById(req.params.user_id, function(err, user) {
if (err) res.send(err);
if (req.body.name) user.name = req.body.name;
if (req.body.username) user.username = req.body.username;
if (req.body.password) user.password = req.body.password;
user.save(function(err) {
if (err) return res.send(err);
return res.send('User updated');
});
});
});
//DELETE (not working???)
apiRouter.delete('users/:user_id', function(req, res) {
User.Remove({ id: req.params.user_id }, function(err) {
if (!err) {
return res.send('User deleted!');
} else {
return res.send('Error deleting user!');
}
});
});
return apiRouter;
};
我apiRouter 。get和apirater。post函数在传递有效的用户id时工作良好,但是使用DELETE发送请求不起作用,并且当我测试
时在PostMan中返回此值。"Cannot DELETE/api/users/55b0dc599e94910c1d37ffa7"
我也在传递一个有效的令牌,这是我的路由中间件所要求的。
有人知道为什么我的DELETE请求不工作,但其他的(如获得单个用户)工作得很好吗?
我想你错过了参数:/
在路由:
apiRouter.delete('/users/:user_id', function(req, res) {
User.Remove({ id: req.params.user_id }, function(err) {
if (!err) {
return res.send('User deleted!');
} else {
return res.send('Error deleting user!');
}
});
});
当我们使用express.js服务器时,我们应该在构建URL时小心,每条指令都很重要
误差:
apiRouter。put(' /users:user_id
', function(req, res) {
apiRouter。put(' /users/:user_id
', function(req, res) {
在我的例子中,错误是在路由的id后面多了一个空格:
错:app.delete('/api/notes/:id '
:
app.delete('/api/notes/:id'
我花了几个小时在论坛和文档中寻找问题。我发现了一些东西,让我检查了两次路线,它在那里。
相关文章:
- JavaScript文件在IIS上返回404 Not Found
- react-css-module module not found
- grails3 jquery not found
- GeckoFX JSContext not found C#
- Marionette: childViewContainer was not found
- Js not found spring mvc
- Ajax POST MyUrl 404 (Not Found)
- 节点webkit中的Require('jquery ui')产生navigator not found错
- xmlhttp.send() returns 404 Not Found (Ajax)
- Socket.io.js not found (node.js + express + socket.io)
- Module not found: Error: Cannot resolve module 'fs'
- 状态码:404 Not Found (from cache) |使用AngularJS的混合型应用
- not found error: DOM exception 8
- Systemjs and tsc setup - *.ts.js 404 (Not Found) Error
- Angular2材质设计alpha.9-3有'404 not found'@angular /材料
- Laravel Routes/jQuery $.post() returning 404 Not Found
- http://localhost/undefined 404 (Not Found)
- /bin/sh not found -- spawnSync
- 节点路由器.delete函数返回404 Not Found
- Angular2 + ag-Grid无法加载ag-Grid -ng2/main.js (404 Not Found)