Node.js 的后端貌似更容易解析 Node 中 request 模块发送的 POST 请求,本文记录 node.js VS Code 环境配置和发送 POST 请求的方法。
{
"username": "your-username",
"password": "your-password"
}
import requests
import json
url = "http://localhost:6789/"
data = {"username": "admin", "password": "xxxxxxx"}
res = requests.post(url=url, data=json.dumps(data))
print(res.text)
- 返回 `400 Bad Request`在在线调试网站上尝试相同请求 - 返回 `400 Bad Request`进入目标项目的相关代码:/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (async (req, res)=>{
const { username , password } = req.body;
if (!username || !password) {
return (0,lib_response__WEBPACK_IMPORTED_MODULE_2__/* .badRequest */ .yw)(res);
}
const account = await (0,queries_admin_account_getAccountByUsername__WEBPACK_IMPORTED_MODULE_1__/* .getAccountByUsername */ .c)(username);
if (account && await (0,lib_crypto__WEBPACK_IMPORTED_MODULE_0__/* .checkPassword */ .oH)(password, account.password)) {
const { user_id , username: username1 , is_admin } = account;
const user = {
user_id,
username: username1,
is_admin
};
const token = await (0,lib_crypto__WEBPACK_IMPORTED_MODULE_0__/* .createSecureToken */ .HD)(user);
return (0,lib_response__WEBPACK_IMPORTED_MODULE_2__.ok)(res, {
token,
user
});
}
return (0,lib_response__WEBPACK_IMPORTED_MODULE_2__/* .unauthorized */ .Hs)(res);
});
- 需要的是 `req.body`
- 在 Python 发送的 `request` 里压根就没有 `body` 这东西,发送的数据在 `data` 属性里,难怪返回 400于是需要直接用 Node.js 发送 Post 请求
npm init --yes
npm install request --save
npm install


var request = require('request');
var url="http://111.33.44.55:8998/api/auth/login";
var requestData={
"username": "admin",
"password": "xxxxxxx"
};
httprequest(url,requestData);
function httprequest(url,data){
console.log("hello world")
request({
url: url,
method: "POST",
json: true,
headers: {
"content-type": "application/json",
},
body: requestData
}, function(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // 请求成功的处理逻辑
}else{
console.log("failed")
console.log(response.statusCode)
console.log(error)
}
});
};