我在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;
}
})
}
答案 0 :(得分:0)
简单的拼写错误。在控制器中,&#34;密码&#34;用一个拼写了#'s&#39;。 Cart.findOne({pasword:req.password})
我不明白为什么节点会将此报告为路由错误。