创建 rest api 以从 odoo erp 检索数据
Create rest api to retrieve data from odoo erp
我正在创建一个休息 api 服务来从 odoo 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]:将它们发送到客户端后无法设置 headers
你能帮我看看我哪里错了吗?
response.status(200).json(value)
响应客户端并结束交易(就像response.end()
或response.sendFile()
等)。
它只能被调用一次,但你执行了两次(一次在 console.log() 中,一次在 "for real" 下一行)。这就是为什么 headers 是 "already sent".
去掉console.log中无用的response.json()
,只记录你想看的value
。
我正在创建一个休息 api 服务来从 odoo 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]:将它们发送到客户端后无法设置 headers
你能帮我看看我哪里错了吗?
response.status(200).json(value)
响应客户端并结束交易(就像response.end()
或response.sendFile()
等)。
它只能被调用一次,但你执行了两次(一次在 console.log() 中,一次在 "for real" 下一行)。这就是为什么 headers 是 "already sent".
去掉console.log中无用的response.json()
,只记录你想看的value
。