Я беру эту книгу для создания моего первого приложения NLU на основе NodeJS, и оно работает безупречно: http://www.redbooks.ibm.com/redbooks.nsf/redbookabstracts/sg248398.html?Open
Но я застрял в сохранении ответа JSON в файл ...
У меня есть файл js (articleServices.js), который обрабатывает вызов, сначала определяя параметры
var parameters = {
"url": req.body.url,
"features": {
"entities": {
"model": "c9c18e41-2f36-4ee5-ad59-9a3b3243c513"
},
"relations": {
"model": "c9c18e41-2f36-4ee5-ad59-9a3b3243c513"
}
}
};
... и вызываю эти параметры, чтобы Уотсон сделал свою магию ...
var parameters = {
"url": req.body.url,
"features": {
"entities": {
"model": "c9c18e41-2f36-4ee5-ad59-9a3b3243c513"
},
"relations": {
"model": "c9c18e41-2f36-4ee5-ad59-9a3b3243c513"
}
}
};
... и все это вложено в это:
exports.extractArticleAuthorNames = function(req, callback){ ... }
Как не-dev, моя логика указывает мне, чтобы я вложил код для сохранения файла json в файл, который определит маршрут, гдеответ будет.Поэтому я написал в этом файле (author.js):
До:
var express = require('express');
var router = express.Router();
var articleServices = require('../services/articleServices');
router.post('/', function(req, res) {
articleServices.extractArticleAuthorNames(req, function(err, response) {
if (err)
res.status(500).send('error: ' + err);
else
res.send(response)
});
});
module.exports = router;
После
var express = require('express');
var router = express.Router();
var articleServices = require('../services/articleServices');
var fs = require('fs');
router.post('/', function(req, res) {
articleServices.extractArticleAuthorNames(req, function(err, response) {
if (err)
res.status(500).send('error: ' + err);
else
res.send(response)
});
var jsonData = ("../author");
fs.writeFile("../test/primo.json", jsonData, (error) => {
if(erro) {
throw erro;
}
console.log("Worked");
});
});
module.exports = router;
И ... не работал :-(
Журнал ошибок:
ReferenceError: ответ не определен
at /home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/routes/author.js:16:17
at Layer.handle [as handle_request] (/home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/node_modules/express/lib/router/layer.js:95:5)
at next (/home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/node_modules/express/lib/router/layer.js:95:5)
at /home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/node_modules/express/lib/router/index.js:335:12)
at next (/home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/node_modules/express/lib/router/index.js:275:10)
at Function.handle (/home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/node_modules/express/lib/router/index.js:174:3)
at router (/home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/node_modules/express/lib/router/index.js:47:12)
(узел: 21477) UnhandledPromiseRejectionWarning: Ошибка: невозможно установить заголовки после их отправки.
at validateHeader (_http_outgoing.js:491:11)
at ServerResponse.setHeader (_http_outgoing.js:498:3)
at ServerResponse.header (/home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/node_modules/express/lib/response.js:767:10)
at ServerResponse.send (/home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/node_modules/express/lib/response.js:170:12)
at /home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/routes/author.js:11:18
at /home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/services/articleServices.js:34:5
at /home/luizc/Área de Trabalho/code_projs/JurisPrimo_Dev/node_modules/watson-developer-cloud/node_modules/ibm-cloud-sdk-core/lib/requestwrapper.js:259:9
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:189:7)
(узел: 21477) UnhandledPromiseRejectionWarning: необработанное отклонение обещания. Эта ошибка возникла либо в результате выброса внутри асинхронной функции без блока catch, либо в результате отклонения обещания, которое не было обработано с помощью .catch ().(id отклонения: 1)
(узел: 21477) [DEP0018] DeprecationWarning: Необработанные отклонения обещаний не рекомендуются. В будущем отклонения обещаний, которые не обрабатываются, завершат процесс Node.js с ненулевым значениемкод выхода.
=======================================
Не могли бы вы, ребята, дать мне подсказку, как решить эту проблему?
Большое спасибо!