Node Js Express 4路由问题

时间:2015-02-14 13:53:37

标签: javascript node.js express

我试图通过express来添加一个NodeJS请求来包含/ api / v1。如果我对我的server.js文件做了一个补充:

app.all('/Employees', require('./routes/Employees'));

我可以前往localhost / Employees并获得正确的响应(它来自我在./routes/Employees中编写的javascript)

如果我将/ api / v1 /添加到app.all调用的开头,就像这样:

app.all('/api/*', requireAuthentication);

我无法前往localhost / api / v1 / Employees。明确的手册甚至有一个明确的说明:

  

另一个例子是白名单"全球"功能。该示例与之前非常相似,但它仅限制以" / api"开头的路径:

http://expressjs.com/api.html#app.all

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

在/ api / *收到请求时,您的应用会感到困惑 - 它不知道该去哪里以及现在该做什么。

如果你想为你的请求添加/ api / v1前缀,你可以通过几种方式来做 - 在你的情况下选择最适合你的方式:

Mountpath方式 -

var express = require('express'),
app = express(),
api = express();

api.all('/employees', function(req, res){
    console.log("url :: " + api.mountpath);
    res.send('hit at employess');
});

//you can do this here fo v(n)
app.use('/api/v1', api);

app.listen(3000);

其他方式 -

var express = require('express');
var app = express();

app.all('/employees', function(req, res){
    res.send('/employe');
});
app.use('/api/v1', function(req, res, next){
    res.redirect(req.path);
});

app.listen(3000);

快乐帮助!