我正在使用快速api端点进行用户注册。服务器端的一切工作正常,但是当我在客户端打印api响应时,我没有看到我在响应中传递的正文。
这是我的api代码:
app.post('/register', function(req, res) {
async function f1() {
console.log(req.body);
var newUser = [req.body.name, req.body.password];
var sql = "INSERT INTO users (name, password) VALUES (?, ?)";
await MySQLConnection.query(sql, newUser, function(err, result){
console.log("starting first query");
if (err) throw err;
console.log("User Added");
});
var sql = "SELECT * from users where password=?";
await MySQLConnection.query(sql, req.body.password, function(err, user){
console.log("Starting second query");
if (err) throw err;
const payload = {
"id": user[0].ID,
"name": user[0].name,
"admin": user[0].admin
}
var token = jwt.sign(payload, app.get('superSecret'), {
expiresIn: 60*60*2
});
console.log(token);
var response = ({
success: true,
message: 'Successfully registered',
token: token
});
console.log(response);
return response;
});
return req.body.name;
}
f1();
return res.status(200).send({"message": 'testing response'});
});
然后这是我的客户端代码发出请求:
fetch('http://localhost:8000/register',
{
method: 'POST',
headers: {'Accept': 'application/json', 'Content-Type': 'application/json'},
body: JSON.stringify({name: this.state.name, password: passwordHash.generate(this.state.password)})
}).then((response, err) => {
if (err) console.log(err);
console.log(response);
});
然后这就是我在客户端控制台中看到的内容:
Response { type: "cors", url: "http://localhost:8000/register", redirected: false, status: 200, ok: true, statusText: "OK", headers: Headers, bodyUsed: false }
所以我希望在回复的某个地方看到这条消息,但我无法弄清楚为什么它没有出现在任何地方。有趣的是,在服务器代码中,我可以设置res.status(500),客户端将确认它收到了500响应。
任何帮助或指示都将不胜感激。