【发布时间】:2016-04-30 04:28:01
【问题描述】:
我的Express 应用程序中有以下代码:
var express = require('express'); // call express
var app = express(); // define our app using express
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
// connect to our database
mongoose.connect('mongodb://username:pwd@<url>/db-name');
var Bear = require('./app/models/bear');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080; // set our port
var router = express.Router();
//middleware to use for all requests
router.use(function(req, res, next) {
// do logging
console.log('Something is happening.');
next(); // make sure we go to the next routes and don't stop here
});
router.route('/bears')
.get(function(req, res) {
Bear.find(function(err, bears) {
if(err)
res.send(err);
console.log('I am in GET');
res.json(bears);
});
})
.post(function(req, res) {
var bear = new Bear();
bear.name = req.body.name;
console.log('body param:'+ bear.name);
bear.save(function(err) {
if(err)
res.send(err);
res.json({ message: 'Bear created!'});
});
});
router.get('/', function(req, res) {
res.json({ message: 'hooray! welcome to our api!' });
});
app.use('/api', router);
app.listen(port);
这是我的Model 代码:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BearSchema = new Schema({
name: String
});
module.exports = mongoose.model('Bear', BearSchema);
当我使用 POSTMAN 或浏览器时,请求会继续进行,不会停止或返回任何内容。我认为回调应该结束但不知道如何。
我正在点击http://localhost:8080/api/bears,它一直在刷新,请求永远不会结束。
当我点击 /api/bears 并且请求没有结束时从服务器输出:
Something is happening.
当我点击 /api 时服务器的输出
Something is happening.
在浏览器上我看到了,
Cannot GET /api
【问题讨论】:
-
您发送什么请求?您在控制台中看到任何错误吗?
-
@AlexanderMac localhost:8080/api/bears 并且没有控制台错误并且它不打印
I am in GET -
您是否使用额外的中间件
app.use('/api', you_router)? -
@AlexanderMac 是的,我愿意
-
您看到
Something is happening.消息了吗?并添加到问题 app.js,您已在其中定义了app.use('/api', you_router)中间件
标签: javascript node.js express