在路由别名上获取 404



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

Cannot GET /api/user

在我的服务器中.js我调用路由:

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

在路由文件夹中,我有索引.js(看起来像是用上述要求调用的(。

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

restUtils 只返回:"/api/user",user-api 只是同一 routes 文件夹中的另一个路由。 我可以在模块.export中放置一个控制台.log这样我就可以在服务器启动时看到它在那里。它看起来像是正在生成 api/用户的别名。但是,当应用去查找 api/user 时,它会返回 404。

以下是来自user-api.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;

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

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

问题存在于

restUtils.buildUrl('/api/user') 
返回一个字符串"API/用户">

,它必须是"/API/用户">

错误说:

Cannot GET /api/user

因此,它试图获得一条不存在的路由。您可以为/api/user添加一个获取路由,这将修复我猜的错误。

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

我希望这对你有帮助

最新更新