我正在创建一个 rest 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]:将标头发送到客户端后无法设置标头
你能帮我哪里错吗?
response.status(200).json(value)
响应客户端并结束事务(就像response.end()
或response.sendFile()
等一样(。
它只能调用一次,但你执行它两次(一次在控制台.log((内,然后一次"真正"下一行(。这就是标头"已经发送"的原因。
从控制台中删除无用的response.json()
.log并仅记录要查看的value
。