Angular:将 JS 类型 'Number' 传递给 HTTP 响应
Angular: pass JS type 'Number' to an HTTP response
我正在开发 MEAN 应用程序(Mongo、Express、Angular、Node)。我想在 Express 中创建一个 GET 路由,它使用 Mongo 的 countDocuments()
方法来 return 集合中的条目总数。
获取路线:
app.get('/total', (req, res) => {
collection.countDocuments({}, function(err, num) {
assert.equal(null, err);
var total = {'total' : num}
res.send(total);
});
});
我创建了 total
对象,因为据我了解,Angular 的 HttpClient
模块仅适用于在 JSON 中格式化的数据。我试图将 num
作为 res.send(num)
直接传递,但它不起作用。我认为这是因为 typeof(num)
returns Number
而不是 Object
.
上面的路线可行,但制作 total
对象对我来说似乎是一个 hack。有没有更有效的方法来传递 Number
类型的东西,以便它可以被 Angular 使用?
这里是相关的Angular组件代码:
export class AppComponent implements OnInit {
total: object;
constructor(private http: HttpClient){
}
ngOnInit(): void {
this.http.get('http://localhost:1337/total').subscribe(
data => {
this.total = data;
}
);
}
}
如果在express
中发送res.send
中的数字,它会将其作为状态码,因此不允许发送Number
类型的数字,有2种解决方案。
解法:1
var result = 5;
res.send(result.toString());
以字符串形式发送,并在客户端使用parseInt
。
解法:2
var result = 5;
res.send({result}); //Iquivalent to { result: 5 }
按照你说的发送一个对象。
我正在开发 MEAN 应用程序(Mongo、Express、Angular、Node)。我想在 Express 中创建一个 GET 路由,它使用 Mongo 的 countDocuments()
方法来 return 集合中的条目总数。
获取路线:
app.get('/total', (req, res) => {
collection.countDocuments({}, function(err, num) {
assert.equal(null, err);
var total = {'total' : num}
res.send(total);
});
});
我创建了 total
对象,因为据我了解,Angular 的 HttpClient
模块仅适用于在 JSON 中格式化的数据。我试图将 num
作为 res.send(num)
直接传递,但它不起作用。我认为这是因为 typeof(num)
returns Number
而不是 Object
.
上面的路线可行,但制作 total
对象对我来说似乎是一个 hack。有没有更有效的方法来传递 Number
类型的东西,以便它可以被 Angular 使用?
这里是相关的Angular组件代码:
export class AppComponent implements OnInit {
total: object;
constructor(private http: HttpClient){
}
ngOnInit(): void {
this.http.get('http://localhost:1337/total').subscribe(
data => {
this.total = data;
}
);
}
}
如果在express
中发送res.send
中的数字,它会将其作为状态码,因此不允许发送Number
类型的数字,有2种解决方案。
解法:1
var result = 5;
res.send(result.toString());
以字符串形式发送,并在客户端使用parseInt
。
解法:2
var result = 5;
res.send({result}); //Iquivalent to { result: 5 }
按照你说的发送一个对象。