WordPress WP_Http与Node.js Express发送和接收数据的方法
2023-11-28
Node.js Express可用于微服务,简单介绍下与WordPress服务之间的http通信方法。
WordPress发送请求:
function micro_request_post($api, $auth = false) {
$url = 'http://127.0.0.1:3006' . $api;
$body = array( 'a' => 'b' ); // 实体参数
$headers = array();
if ($auth) { // 认证token(可选)
$headers['Authorization'] = $auth;
}
$args = array(
'method' => 'POST',
'body' => $body,
'headers' => $headers
);
$request = new WP_Http;
$result = $request->request( $url, $args );
if (is_wp_error($result)) {
// 处理错误情况
// echo 'Error: ' . $response->get_error_message();
return null;
}
return json_decode($result['body']);
}
Node.js Express接收请求:
exports.micro_request_post = (req, res, next) => {
console.log(req.headers, req.body, req.params, req.query);
res.send({
valid: true
});
}
用于接收数据的req,常用参数有:req.headers, req.body, req.params, req.query。
注意:req.body如果为undefined,通常是因为没有安装中间件body-parser。
$ npm install body-parser --save
正确地使用body-parser中间件:
const express = require('express')
const bodyParser = require('body-parser');
const app = express()
app.use(bodyParser.json({limit: "10mb"}));
app.use(bodyParser.urlencoded({extended: true, limit: "1mb"}));
bodyParser一定要放在程序最前面,避免业务逻辑提前使用body数据。
(版权归cpury.com所有,转载请注明出处。)