Я хочу получить ответ JSON от вызова API, который я делаю.Например, я хочу получить что-то вроде этого:
{"error": {}, "success": true, "data": {"user": "tom", "password": "123", "умение": "начинающий", "год": 2019, "месяц": "мар", "день": 31, "playmorning": 0, "playafternoon": 1, "playevening": 1}}
Это мой вызов API, использующий fetch в реакции.(да, я знаю, что отправка пароля в URL - это плохо, это для школьного проекта)
fetch('/api/user/'+ user + '?password=' + password, {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
}}).then((res) => {
console.log(res); //I want to get the JSON stuff here
})
Это вызов API, который я вызываю.
app.get('/api/user/:user', function (req, res) {
// console.log(JSON.stringify(req));
// var user = req.body.user;
// var password = req.body.password;
var user = req.params.user;
var password = req.query.password;
console.log(user, password);
var result = { error: {} , success:false};
if(user==""){
result["error"]["user"]="user not supplied";
}
if(password==""){
result["error"]["password"]="password not supplied";
}
if(isEmptyObject(result["error"])){
let sql = 'SELECT * FROM user WHERE user=? and password=?;';
db.get(sql, [user, password], function (err, row){
if (err) {
res.status(500);
result["error"]["db"] = err.message;
} else if (row) {
res.status(200);
result.data = row;
result.success = true;
} else {
res.status(401);
result.success = false;
result["error"]["login"] = "login failed";
}
res.json(result);
});
} else {
res.status(400);
res.json(result);
}
});
Когда я запускаю console.log(res) в вызове выборки это то, что напечатано:
Response {тип: "basic", url: "http://localhost:3000/api/user/tim?password=123", перенаправлено: false, статус: 200, ok: true,…} body: (...) bodyUsed: falseheaders: Headers {} ok: trueredirected: falsestatus: 200statusText: "OK" тип: "basic" url: "http://localhost:3000/api/user/tim?password=123"proto: Ответ
Когда я посещаювеб-сайт, вывод:
{"error": {}, "success": true, "data": {"user": "tom", "password": "123", "skill":" beginner "," year ": 2019," month ":" Mar "," day ": 31," playmorning ": 0," playafday ": 1," playevening ": 1}}
Это то, что я хочу.