FeathersJs:无法设置 headers
FeathersJs: Cannot set headers
我正在尝试在 feathersjs 应用程序的路线上设置 content-type header。
我一直 运行 进入这个错误 - error: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
这就是我尝试设置 headers --
的方式
const myService = {
create(data, params) { // create == POST request
console.log(data);
return Promise.resolve();
}
};
function setContent(req, res, next) {
res.setHeader('content-type', 'text/plain');
res.end();
next();
}
app.use('/incoming', myService, setContent);
我猜 return Promise.resolve();
也设置了 header。我该如何覆盖它?
调用服务前需要先调用中间件,
试试这个
const myService = {
create(data, params) { // create == POST request
console.log(data);
return Promise.resolve();
}
};
function setContent(req, res, next) {
res.setHeader('content-type', 'text/plain');
next();
}
app.use('/incoming', setContent, myService);
错误不是来自您的中间件,而是 Feathers 注册的 after 因为您要以 res.end()
结束响应,然后 still 调用 next()
这可能不是您想要的。应该是
function setContent(req, res, next) {
res.setHeader('content-type', 'text/plain');
res.end();
}
或者
function setContent(req, res, next) {
res.setHeader('content-type', 'text/plain');
next();
}
此外,服务方法总是必须 return 一个对象,因此它至少应该是 return Promise.resolve(data);
或 return Promise.resolve({});
我正在尝试在 feathersjs 应用程序的路线上设置 content-type header。
我一直 运行 进入这个错误 - error: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
这就是我尝试设置 headers --
的方式const myService = {
create(data, params) { // create == POST request
console.log(data);
return Promise.resolve();
}
};
function setContent(req, res, next) {
res.setHeader('content-type', 'text/plain');
res.end();
next();
}
app.use('/incoming', myService, setContent);
我猜 return Promise.resolve();
也设置了 header。我该如何覆盖它?
调用服务前需要先调用中间件, 试试这个
const myService = {
create(data, params) { // create == POST request
console.log(data);
return Promise.resolve();
}
};
function setContent(req, res, next) {
res.setHeader('content-type', 'text/plain');
next();
}
app.use('/incoming', setContent, myService);
错误不是来自您的中间件,而是 Feathers 注册的 after 因为您要以 res.end()
结束响应,然后 still 调用 next()
这可能不是您想要的。应该是
function setContent(req, res, next) {
res.setHeader('content-type', 'text/plain');
res.end();
}
或者
function setContent(req, res, next) {
res.setHeader('content-type', 'text/plain');
next();
}
此外,服务方法总是必须 return 一个对象,因此它至少应该是 return Promise.resolve(data);
或 return Promise.resolve({});