Node.js 快车找不到路线
我在Angular中定义了以下路线: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
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;
}
})
}