我想关于这个问题,我打电话从PHP脚本节点JS API使用卷曲的一个,我做console.log()
在服务器上,它显示接收到的有效载荷和返回的响应如下,但我的PHP脚本它显示卷曲误差Empty reply from server
PHP代码:
$payload = json_encode(array('message_id' => 'test'));
$ch = curl_init(URL);
curl_setopt($ch, CURLOPT_URL, URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json', 'Content-Length: ' . strlen($payload)));
// curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
$response = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_err = curl_error($ch);
$info = curl_getinfo($ch);
服务器响应:
{ message_id: 'test' }
Executing (default): SELECT count(*) AS `count` FROM `messagenumbermaster` AS `messagenumbermaster` WHERE `messagenumbermaster`.`messagenumber` = 'test';
在随后返回值:新
我也收到[http_code] => 0
我搜索了很多,但没有运气curl_getinfo()
,请帮助我。
节点JS代码:
module.exports.checkDuplicate = {
auth: false,
validate: {
payload: joi.object().required().keys({
message_id: joi.string().required()
})
},
handler: ((req, res) => {
console.log(req.payload);
try {
return emailrdb.messagenumbermaster.count({
where: {
messagenumber: req.payload.message_id
}
})
.then(count => {
console.log('in then');
if(count > 0){
//duplicate
console.log('resturned value: duplicate');
return 'duplicate';
}else{
console.log('resturned value: New');
return 'New';
}
})
} catch (err) {
console.log("checkDuplicate: ErrorLog", err);
Log.createLog(`${new Date()}- checkDuplicate error: ${err}`);
throw boom.boomify(err.message);
}
})
};
从RESTER试过当我收到回应。注:我从本地主机上运行PHP和节点
既然你打电话从不同范围return 'New';
你从then...
但高致病性禽流感处理程序返回仍在等待回报不会被调用。
你不能从内部范围做return
达到外部范围。
因此,检查这些代码:
module.exports.checkDuplicate = {
auth: false,
validate: {
payload: {
message_id: joi.string().required()
}
},
handler: async (req, res) => {
try {
const {message_id} = req.payload;
const query = {
where: {
messagenumber: message_id
}
};
const model = emailrdb.messagenumbermaster;
const count = await model.count(query);
// returning json response with fields: payload, message_id, result, duplicate, count
return res.response({
payload: req.payload,
message_id,
result: (count > 0 ? 'duplicate' : 'new'),
duplicate: count > 0,
count
}).code(200);
// return res({...}).code(200); // for hapi v16
}
catch (error) {
console.error('Got exception during "checkDuplicate" call. Backtrace:', error);
Log.createLog(`${new Date()} - checkDuplicate error: ${err.message}`);
throw boom.boomify(err.message);
}
}
};