admin管理员组文章数量:1336331
I am working on to make REST API in express js but getting an error "Cannot GET /api/bears". here is my code
server.js
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var Bear = require('./app/models/bear');
mongoose.connect('mongodb://localhost/api', { useNewUrlParser: true }); // connect to our database
app.use(bodyParser.urlencoded({ extended: true}));
app.use(bodyParser.json());
var port = process.env.PORT || 3000;
//routes for api
var router = express.Router();
router.use(function(req, res, next) {
console.log('Something is happening.');
next();
});
router.get('/',function(req,res){
res.json({message: "Wele to my Api"});
});
router.route('/bears')
.post(function(req,res){
var bear = new Bear();
bear.name = req.body.name;
bear.save(function(err){
if(err)
{
res.send(err);
}
res.json({message: 'bear created!'});
});
});
app.use('/api', router);
app.listen(port);
console.log("Magic happens on port" + port);
app/models/bear.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BearSchema = new Schema({
name: String
});
module.exports = mongoose.model('Bear', BearSchema);
On localhost:3000/api, everything works fine but on localhost:3000/api/bears I am getting Cannot GET /api/bears
Could anyone help me where I am missing?
I am working on to make REST API in express js but getting an error "Cannot GET /api/bears". here is my code
server.js
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var Bear = require('./app/models/bear');
mongoose.connect('mongodb://localhost/api', { useNewUrlParser: true }); // connect to our database
app.use(bodyParser.urlencoded({ extended: true}));
app.use(bodyParser.json());
var port = process.env.PORT || 3000;
//routes for api
var router = express.Router();
router.use(function(req, res, next) {
console.log('Something is happening.');
next();
});
router.get('/',function(req,res){
res.json({message: "Wele to my Api"});
});
router.route('/bears')
.post(function(req,res){
var bear = new Bear();
bear.name = req.body.name;
bear.save(function(err){
if(err)
{
res.send(err);
}
res.json({message: 'bear created!'});
});
});
app.use('/api', router);
app.listen(port);
console.log("Magic happens on port" + port);
app/models/bear.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BearSchema = new Schema({
name: String
});
module.exports = mongoose.model('Bear', BearSchema);
On localhost:3000/api, everything works fine but on localhost:3000/api/bears I am getting Cannot GET /api/bears
Could anyone help me where I am missing?
Share Improve this question edited Sep 20, 2018 at 7:50 Harshal Yeole 5,0011 gold badge23 silver badges43 bronze badges asked Sep 20, 2018 at 7:30 Bhakti ThakkarBhakti Thakkar 3733 gold badges7 silver badges17 bronze badges2 Answers
Reset to default 3You will certainly get this error
Cannot GET /api/bears
The second word is important here : GET
You defined your route with :
router.route('/bears').post(function(req,res){ [...] })
If you send a GET request, you will certainly not match a route. Make a POST request instead.
You have created route with POST method to create bear but don't have route for getting the data:
router.route('/bears').post(function.....
That's why you are getting:
400 Cannot GET /api/bears
Add something like this and try again.
router.route('/bears').get(function (req, res) {
Bear.find({}, function (err, result) {
res.status(200).send({ result });
})
});
本文标签: javascriptGetting error of quotcannot getquot while making an api in express jsStack Overflow
版权声明:本文标题:javascript - Getting error of "cannot get" while making an api in express js - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742333987a2455255.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论