我目前在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