Создать остальные API для извлечения данных из Odoo ERP - PullRequest
0 голосов
/ 14 января 2020

Я создаю службу API остальных, чтобы получать, помещать, удалять данные из opoo erp.

Вот мой код:

const Promise = require('bluebird');
Promise.promisifyAll(require('node-odoo').prototype);

const Odoo = require('odoo-xmlrpc');


const odoo = new Odoo({
    url: 'zzzz',
    port: 'zz',
    db: 'zzzz',
    username: 'zzzz',
    password: 'zzz*'
});


var express = require('express'),
    app = express(),
    port = process.env.PORT || 3000;
this.router = express.Router();
app.listen(port);

console.log('todo list RESTful API server started on: ' + port);


this.router.get('/api/event/', (req, res) => {
    return getEvent(req, res);
});


app.get('/getEvent', (request, response) => {

        odoo.connect((err) => {
            if(err)  return console.log('Findeventlist error ' + err);
            console.log('Findeventlist connected ' );
            var inParams = [];
            inParams.push([]);
            inParams.push(['name' ])
            inParams.push(0)
            inParams.push(5)
            var params = [];
            params.push(inParams);
            odoo.execute_kw('calendar.event', 'search_read', params, function (err, value) {
                if (err) { return console.log(err) }
                if(value){
                    console.log( 'Value is ' +   response.status(200).json(value));

                    return response.status(200).json(value)
                }
            });
        });
        console.log(' odoo connected');


})

Я получил эту ошибку: Ошибка [ERR_HTTP_HEADERS_SENT] : Не удается установить заголовки после их отправки клиенту

Можете ли вы помочь мне, пожалуйста, где я не прав?

1 Ответ

2 голосов
/ 14 января 2020

response.status(200).json(value) отвечает клиенту и завершает транзакцию (точно так же, как response.end() или response.sendFile() et c).

Он должен вызываться только один раз, но вы выполняете его дважды (один раз внутри console.log (), затем один раз «по-настоящему» на следующей строке). Вот почему заголовки «уже отправлены».

Удалите ненужные response.json() из console.log и зарегистрируйте только те value, которые вы хотите просмотреть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...