Я использую рентгеновскую библиотеку в моем проекте MEAN.js, и я не могу исправить это сообщение об ошибке:запись после конца ошибки с помощью рентгена
Error: write after end at writeAfterEnd (_stream_writable.js:166:12) at Writable.write (_stream_writable.js:211:5) at Writable.end (_stream_writable.js:446:10) at _stream_object (C:\src\je\foodleWeb\node_modules\x-ray\lib\stream.js:46:16) at next (C:\src\je\foodleWeb\node_modules\x-ray\index.js:137:11) at C:\src\je\foodleWeb\node_modules\x-ray\index.js:242:7 at C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:56:12 at callback (C:\src\je\foodleWeb\node_modules\batch\index.js:147:12) at C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:49:9 at C:\src\je\foodleWeb\node_modules\x-ray\index.js:232:24 at next (C:\src\je\foodleWeb\node_modules\x-ray\index.js:138:11) at C:\src\je\foodleWeb\node_modules\x-ray\index.js:242:7 at C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:56:12 at callback (C:\src\je\foodleWeb\node_modules\batch\index.js:147:12) at C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:39:11 at C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:56:12 at callback (C:\src\je\foodleWeb\node_modules\batch\index.js:147:12) at C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:49:9 at C:\src\je\foodleWeb\node_modules\x-ray\index.js:212:18 at next (C:\src\je\foodleWeb\node_modules\x-ray\index.js:138:11) at C:\src\je\foodleWeb\node_modules\x-ray\index.js:242:7 at C:\src\je\foodleWeb\node_modules\x-ray\lib\walk.js:56:12
Это мой код, где я с помощью встроенной в функции «трубу», чтобы передать ответ обратно $ HTTP
export function show(req, res) {
var stream = x(url,
[{
text: '.name'
}])(function (err, data) {
if (err) {
console.log("[Xray] Error:", err);
}
else {
return data;
}
}).stream();
stream.pipe(res);
}
Я пытался использовать следующий подход, чтобы поймать исключение, но это не работает хорошо, как это основано на обещаниях. Я хотел бы иметь что-то подобное, чтобы предотвратить появление приложения.
Может быть, я мог бы обернуть свой код в функцию и передать обратный вызов или что-то подобное ...
function respondWithResult(res, statusCode) {
statusCode = statusCode || 200;
return function (entity) {
if (entity) {
res.status(statusCode).json(entity);
}
};
}
function handleError(res, statusCode) {
statusCode = statusCode || 500;
return function (err) {
res.status(statusCode).send(err);
};
}
export function index(req, res) {
return Squeme.find().exec()
.then(respondWithResult(res))
.catch(handleError(res));
}
Я мог бы найти решение, не используя функцию трубы и создав ответ таким образом: return res.status (200) .json (data); – Rober