Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多快速路由器_Javascript_Node.js_Express - Fatal编程技术网

Javascript 多快速路由器

Javascript 多快速路由器,javascript,node.js,express,Javascript,Node.js,Express,我一直使用express.Router()作为API路由的前缀。例如: var app = express(), api = express.Router(); app.use("/api", api); 现在我可以做到: api.post("/contact", function(req, res){ //process contact }); 但现在我想要不止一条这样的路线。例如,我会这样做: var app = express(), api = express.R

我一直使用
express.Router()
作为API路由的前缀。例如:

var app = express(),
    api = express.Router();

app.use("/api", api);
现在我可以做到:

api.post("/contact", function(req, res){
  //process contact
});
但现在我想要不止一条这样的路线。例如,我会这样做:

var app = express(),
    api = express.Router(),
    auth = express.Router();

app.use("/api", api);
app.use("/auth", auth);
不幸的是,这不起作用。如果我从我的角度前端调用
/auth/login
,它将以
/api/auth/login
的形式出现


我如何使用这样的多个路由器?

编辑:也许这就是你要找的

var app = express();

var api = express.Router()
    .get('/contact', contacts.get);

var auth = express.Router()
    .get('/login', login);

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

我希望
api
auth
路由分开。因此,请求将通过
/api/contact
/auth/login
发出。目前,这两条路线似乎相互冲突。所以在我的Angular代码中,我做了:
$http.post(“/auth/login”)
,在节点中它将其路由为
/api/auth/login
,这是不正确的,我看不到冲突,除非您在
api
路由器上定义了
/auth/login
路由,它属于
api
路由器。我已经编辑了我的答案,但如果这不好,你能更新你的问题,更详细地说,你具体想路由到哪些方法?啊,我想这是我的角度代码的问题!是的,你的代码高于工程,谢谢你。太好了!你能详细说明你的角度问题是什么吗?你甚至可以把它作为你自己的答案,并把它标记为答案,而不是我的答案(尽管我很感激你的投票),这样其他用户就可以从这个问题中得到一些帮助:)这太愚蠢了,我是在向
/api/auth/login
发出http请求。我不知道为什么。