在路由别名上获取404

时间:2018-06-14 15:52:01

标签: node.js angular

我是Node和angular的新手,并试图弄清楚为什么我的应用程序会抛出404。 这是我在Firebug中看到的主要错误:

 var express = require('express');
 var app = express();
 require('./routes')(app)

在我的server.js中,我打电话给路线:

 module.exports = function(app) {
    app.use(restUtils.buildUrl('/api/user'), require('./user-api'));
 }

在routes文件夹中,我有index.js(看起来像是用上面的要求调用的)。

 var router = require('express').Router(),
     config = require('../conf/config'),
     logger = require('../lib/logger'),
     restUtils = require('../lib/rest-utils');
 console.log("Inside User-Api");
 router.get('/', function(req,res) {
    console.log("Inside user-api - router.get");
    if (config.debug && config.secured) logger.info('USER: ', req.user)
    var user = {
        id: req.user ? req.user.id : '',
        displayName: req.user ? req.user.displayname : 'Unknown User',
        roles: req.user ? req.user.appRoles : [],
        groups: req.user ? req.user.appGroups : [],
        profile: req.user ? req.user.profile : {}
    };

    res.format({
       json: function() {
          res.send(user);
       }
    });
 });

 module.exports = router;

restUtils只返回:'/ api / user'和user-api只是同一个routes文件夹中的另一条路径。 我可以在module.exports中放置一个console.log,这样我就可以在服务器启动时看到它在那里。它似乎正在为api / user生成别名。但是,当应用程序找到api / user时,它会返回404。

以下是来自user-api.js的代码段:

{{1}}

我在服务器启动时看到第一个console.log,但它永远不会落入router.get。

如果您认为我应该在不同的地方展示更多代码,请告诉我 - 只是不确定需要尝试找出这个404!也许user-api路由在应该调用router.get时无法加载?我想我还不太了解路由和模块。 谢谢!

2 个答案:

答案 0 :(得分:1)

存在问题
restUtils.buildUrl('/api/user') 

返回一个字符串' api / user',它需要是' / api / user'

答案 1 :(得分:0)

错误说:

Cannot GET /api/user

因此它试图找到一条不存在的路线。您可以 / api / user 添加获取路径 ,这样可以解决我猜错误。

app.get("/api/user",function(req,res){})

我希望那可以帮到你