试图对我的RN项目实施nodemailer,但是我在提出基本的发帖请求时遇到了困难。我想念什么?
RN代码:
const sendEmail = (_email, _topic, _text) => {
return dispatch => {
fetch('http://MY_IP/api/sendEmail', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: _email,
topic: _topic,
text: _text
})
})
.then((res) => res.json())
.then((res) => {
console.log('here is the response: ', res);
})
.catch((err) => {
console.error('here is the error: ', err);
})
}
}
服务器:
const express = require('express');
const app = express();
app.post('/api/sendEmail', (req, res) =>{
console.log(req.body);
res.send(req.body)
})
const PORT = process.env.PORT || 5000;
app.listen(PORT);
我得到req.body是不确定的。
如果我需要发布更多代码或添加package.json,请告诉我
答案 0 :(得分:1)
我认为您的RN代码很好,但是服务器代码缺少正文解析器软件包。在服务器代码看起来像这样
之后,在“ package.json”中安装依赖项“ npm install body-parser --save”const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.post('/api/sendEmail', (req, res) =>{
console.log(req.body);
res.send(req.body)
})
const PORT = process.env.PORT || 5000;
app.listen(PORT);
希望有帮助。
答案 1 :(得分:1)
更好地使用axios软件包,它易于向api发送发布请求。
打包链接:https://www.npmjs.com/package/axios
例如:
axios.post('/http://MY_IP/api/sendEmail', {
email: _email,
topic: _topic,
text: _text
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});