【问题标题】:http://localhost:3000/api/posts i am getting COULD NOT GET ANY RESPONSE. using POSTMANhttp://localhost:3000/api/posts 我无法得到任何回应。使用邮递员
【发布时间】:2015-08-21 12:44:25
【问题描述】:
    // this is app.js which is the main application file
    var express = require('express');
    var path = require('path');
    var favicon = require('serve-favicon');
    var logger = require('morgan');
    var cookieParser = require('cookie-parser');
    var bodyParser = require('body-parser');

    var api = require('./routes/api');``
    //var users = require('./routes/users');

    var app = express();

    // view engine setup
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'ejs');

    // uncomment after placing your favicon in /public
    //app.use(favicon(__dirname + '/public/favicon.ico'));
    app.use(logger('dev'));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: false }));
    app.use(cookieParser());
    app.use(express.static(path.join(__dirname, 'public')));

  //  app.use('/', routes);
    app.use('/api', api);

    // catch 404 and forward to error handler
    app.use(function(req, res, next) {
        var err = new Error('Not Found');
        err.status = 404;
        next(err);
    });

    // error handlers

    // development error handler
    // will print stacktrace
    if (app.get('env') === 'development') {
        app.use(function(err, req, res, next) {
            res.status(err.status || 500);
            res.render('error', {
                message: err.message,
                error: err
            });
        });
    }

    // production error handler
    // no stacktraces leaked to user
    app.use(function(err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: {}
        });
    });


    module.exports = app;

这是实现 RESTful API 的 api.js。Post 是一种资源,因此我们将实现一个 /posts API,首先我们将在 api.js 中为 /posts api 实现占位符路由处理程序。

var express = require('express'); var router = express.Router();

//api for all posts
router.route('/posts')

    //create a new post
    .post(function(req, res){

        //TODO create a new post in the database
        res.json({message:"TODO create a new post in the database"});
    })

    .get(function(req, res){

        //TODO get all the posts in the database
        res.json({message:"TODO get all the posts in the database"});
    })



module.exports = router;

我在邮递员那里得到这个

【问题讨论】:

    标签: node.js mean


    【解决方案1】:

    你应该去

    http://localhost:3000/api/posts

    不是

    http://localhost:3000/routes/api/posts

    ..

    编辑:

    我没有意识到你在打电话

    req.send
    

    这不是一种方法

    req (request)
    

    你正在寻找

    res (response)
    

    除此之外,您还尝试发送 json 结果,而不是纯文本,因此请使用

    res.json 
    

    代替

    回复.发送

    【讨论】:

    • 我没用过邮递员,你想得到一个json响应吗?使用 res.json 而不是 req.send @ParijatPandey
    • 是的@Datsik 我正在尝试获取 json 响应。也尝试了 res.json 但得到了相同的结果。
    • 更新您问题中的代码,以便我可以看到@ParijatPandey
    • 我关注这个链接github.com/hwz/chirp/tree/master/module-3希望你能在这里获得更多信息。更新
    • @ParijatPandey 您是否查看了节点控制台以查看您是否收到请求或查看节点是否抛出错误?也附上邮递员的截图
    【解决方案2】:

    我没有看到您使用app.listen(3000) 启动服务器。您只需导出 express 应用即可。

    或者是否有其他模块可以启动服务器?

    【讨论】:

    猜你喜欢
    • 2018-09-24
    • 2020-09-20
    • 2017-11-18
    • 2019-03-20
    • 2017-03-30
    • 2020-10-16
    • 2019-07-07
    • 2019-12-23
    • 2019-04-01
    相关资源
    最近更新 更多