表示找不到路线

时间:2018-06-06 17:08:13

标签: 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的函数:

public getNumberOfItems() {
   return this.httpClient.get<number>(this.cartCountUrl)
   .pipe(
     tap(count => console.log('count', count)),
     map(count => this.numberOfItems = count)
   )
 }

路由在Node上定义如下:

'use strict';

var ctrlCart = require('../controllers/cart.server.controller');
var ctrlUser = require('../controllers/user.server.controller');

module.exports = (app) => {
    app.route('/api/cart/add')
    .post(ctrlUser.authenticate, ctrlCart.cartAdd);

    app.route('/api/cart/get')
   .get(ctrlUser.authenticate, ctrlCart.cartGet);

    app.route('/api/cart/count')
    .get(ctrlUser.authenticate, ctrlCart.cartCount);

}

再次,找到前两个路线。 '/ 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;
        }
    })
  }

1 个答案:

答案 0 :(得分:0)

简单的拼写错误。在控制器中,&#34;密码&#34;用一个拼写了#'s&#39;。 Cart.findOne({pasword:req.password})

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