我将类型添加到我的NestJS服务器。
我已经编写了一个控制器(Express爱好者的路由),然后尝试指定params的类型:
var searchInput = document.getElementById("searchMovie");
// get movie
searchInput.onkeydown = function() {
var searchData = document.getElementById("searchMovie").value;
if (searchData.length >= 3 ) {
var request = new XMLHttpRequest();
request.open('GET', 'http://www.omdbapi.com/?s=' + searchData + '&apikey=000000', true);
request.onload = function () {
// Begin accessing JSON data here
var data = JSON.parse(this.response);
const wrapper = document.createElement('div');
app.appendChild(wrapper);
var results = data;
if (request.status >= 200 && request.status < 400) {
console.log(data);
Object.keys(data.Search).map(function(key, index) {
console.log(data.Search[index].Title);
const searchResultsContainer = document.createElement('div');
searchResultsContainer.setAttribute('class', 'row');
const h1 = document.createElement('h1');
h1.textContent = data.Search[index].Title;
wrapper.appendChild(searchResultsContainer);
searchResultsContainer.appendChild(h1);
console.log(searchResultsContainer);
});
} else {
console.log('error');
}
};
request.send();
}
};
由于我在public async getAllMessages(
@Query('startDate', ValidateDate) startDate: string,
@Query('endDate', ValidateDate) endDate: string,
@Res() res: Response,
): Promise<string> {
const data = await this.crudService.getPeriodicMessages(startDate, endDate);
return res.status(HttpStatus.OK).send(data);
}
中收到此错误消息,因此我在Response
中添加了类型res
。
错误:res.status(HttpStatus.OK).send(data)
。
我已经检查了响应类型具有Cannot invoke an expression whose type lacks a call signature. Type 'Number' has no compatible call signatures.
类型的status
成员,并且number
也是类型HttpStatus.OK
的成员,所以如何将其转换为{{1} }?
我也读过other threads,但无法解决我的问题。
答案 0 :(得分:1)
在此示例中,无需使用@Res()
注入响应对象。
您可以执行以下操作,nest将自动处理响应。默认情况下,http状态代码始终为200(POST为201)。
public async getAllMessages(@Query('startDate', ValidateDate) startDate: string,
@Query('endDate', ValidateDate) endDate: string): Promise<string> {
return this.crudService.getPeriodicMessages(startDate, endDate);
}
对于特殊情况,您只需注入响应对象,例如动态设置响应代码。