我目前在Node.js的Express框架上構建了一個Web應用程序。在同一個提取POST API調用中返回JSON
我正在構建一個需要執行用戶登錄的React Native應用程序。爲此,我創建了一個mongo-helpers.js
文件,該文件將簡單地執行api調用localhost:3000/api並返回JSON。到目前爲止,我已經沒有問題,使得GET
通話和接收數據,但這裏是我的問題,我想做什麼:
目的:當按下登錄按鈕(在陣營生應用)使一個API調用localhost:3000/api/login,將username
和password
傳遞給fetch
API POST
請求的body
。如果用戶登錄,則發回用戶的Mongo文檔。
問題:雖然我能夠使API發佈採購信息,併成功登錄的用戶,我無法發送回用戶的蒙戈文檔與res.json(user)
這裏是我的代碼:
快遞WEB APP:路線/ API/api.js
// POST and login user
router.post('/login', (req, res) => {
user.findOne({name: req.body.name, password: req.body.password})
.then((user) => {
console.log(user);
res.json(user)
})
.catch((error) => res.json(error))
});
陣營原生應用:蒙戈 - helpers.js
// Returns a promise
// if login succeeds then return the user
// if login fails return error
exports.login = (name, password) => {
return new Promise(
(resolve, reject) => {
fetch(APP_SERVER_URL+'/login', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({name, password})
}).then((response) => {
console.log('Response', response);
}).then((data) => {
console.log(data); // returns undefined :(
resolve(data);
}).catch((error) => {
console.log('Error', error); // no error is returned
reject(error);
})
}
)
};
我登錄了response
,這裏是什麼它顯示。有一個在第一則回調它
難道有'以.json()'函數的響應對象? – Brennan
'console.log(user);'在服務器/節點控制檯上輸出是否正確? – Searching
@搜索是的,它確實是 – szier