Node.js 使用axios响应本机api调用
我在nodeJs后端创建了这个apiNode.js 使用axios响应本机api调用,node.js,reactjs,react-native,axios,Node.js,Reactjs,React Native,Axios,我在nodeJs后端创建了这个api app.post("/addInvoice", (req, res) => { let invoice = req.body; var sql = "INSERT INTO invoice (address, email, billnumber, price, status) VALUES(?, ?, ?, ?, 'sent');"; mysqlConnection.query( sq
app.post("/addInvoice", (req, res) => {
let invoice = req.body;
var sql =
"INSERT INTO invoice (address, email, billnumber, price, status) VALUES(?, ?, ?, ?, 'sent');";
mysqlConnection.query(
sql,
[
invoice.address,
invoice.customeremail,
invoice.billnumber,
invoice.totalprice,
],
(err, rows, fields) => {
if (!err) {
res.send(rows);
} else {
res.send(err);
}
}
);
});
当我使用PostMan调用这个API时,它工作得非常好
但现在我需要从我的react原生应用程序中单击按钮调用它
axios
.post("http://localhost:3000/addInvoice", {
address: address,
customeremail: email,
billnumber: invoicenumber,
totalprice: totalPrice,
})
.then((response) => {
alert(response);
});
我发送此消息时未发生任何事情,并且警报(Response)未返回任何内容
可能是什么问题?您的模拟器(或手机)本身就是一个设备,它与您的web浏览器、邮递员或服务器不在同一IP(localhost或127.0.0.1)上运行
为了从仿真器(或手机)向服务器发出请求,您需要通过计算机IP地址访问服务器:在windows上,通过在命令提示符下运行ipconfig获取您的IP地址,或者在此处:系统首选项>网络>高级>TCP/IP>IPv4地址
而不是http://localhost:port 你应该使用http://your_ip_address:port试试这个:然后((响应)=>{console.log(响应);}).catch((错误)=>console.log(“错误”,错误),将记录什么???日志是错误[错误:网络错误]@Zahramirali我想这与我手机上运行的应用程序有关->应该使用不同的url?是的,没错,但我正在扫描二维码并在手机上测试该应用程序。好的,它起作用了,我改为使用我的IP地址。非常感谢,但我有一个问题,如果我想将项目发送给其他人,他应该在完整的代码?或者有解决方案吗?如果他是你的同事,你想同时向他发送后端和前端,他可以更改IP地址,但如果你想将你的应用程序发送给某人进行测试,他不应该更改IP,解决方案:1.当他测试你的应用程序时,你的电脑应该打开(否则您的应用程序无法调用Api)2.将您的nodeJs后端部署到服务器,并用服务器地址替换“localhost”。您好,很抱歉打扰您,但您能帮我解决react native中的另一个小问题吗?当然,如果我能够回答:)