Node.js 快车找不到路线

Node.js 快车找不到路线,node.js,express,Node.js,Express,我在Angular中定义了以下路线: export class CartService { private cartAddUrl = "/api/cart/add"; private cartGetUrl = "/api/cart/get"; private cartCountUrl = "/api/cart/count"; } 使用前两个变量对节点服务器的调用按预期工作。使用cartCountUrl的调用会导致404错误,找不到路由 这是使用cartCountUrl的函数: pu

我在Angular中定义了以下路线:

export class CartService {
  private cartAddUrl = "/api/cart/add";
  private cartGetUrl = "/api/cart/get";
  private cartCountUrl = "/api/cart/count";
}
使用前两个变量对节点服务器的调用按预期工作。使用cartCountUrl的调用会导致404错误,找不到路由

这是使用cartCountUrl的函数:

public getNumberOfItems() {
   return this.httpClient.get<number>(this.cartCountUrl)
   .pipe(
     tap(count => console.log('count', count)),
     map(count => this.numberOfItems = count)
   )
 }
同样,找到了前两条路线。“/api/cart/count”路由导致404错误

cart.server.controller:

exports.cartCount = function(req, res) {
    Cart.findOne({pasword: req.password})
    .exec(function(err, cart) {
        if(err) {
            console.log('error get cart count');
            res.status(500).json(err);
            return;
        } else if(!cart) {
            res.status(404).json(0);
        } else {
            console.log('cart count', cart.cartItem.length);
            res.status(200).json(cart.cartItem.length);
            return;
        }
    })
  }

简单的打字错误。在控制器中,“密码”拼写为“s”。 Cart.findOne({pasword:req.password})


我不明白node为什么会将此报告为路由错误。

您能否包括
cart.server.controller
?包括cart.server.controller。@Juan您指出了正确的方向。控制器中有一个输入错误——密码拼写错误。奇怪的是,节点会将此报告为404。它必须在那里!我很高兴你明白了。你没有得到404,因为找不到路线。您之所以得到它是因为这一行:
res.status(404.json)(0)(结合您在回答中提到的打字错误)。
exports.cartCount = function(req, res) {
    Cart.findOne({pasword: req.password})
    .exec(function(err, cart) {
        if(err) {
            console.log('error get cart count');
            res.status(500).json(err);
            return;
        } else if(!cart) {
            res.status(404).json(0);
        } else {
            console.log('cart count', cart.cartItem.length);
            res.status(200).json(cart.cartItem.length);
            return;
        }
    })
  }