【发布时间】:2018-04-02 12:14:01
【问题描述】:
我将输入字段中的数据发送到我的 api:
$.ajax({
url: '/api/login',
type: 'GET',
dataType: 'json',
ContentType: 'application/json',
data: {formData},
success: (data) => {
console.log('SUCCESS')
console.log(data)
this.setState({
isInProcess: false
})
},
error: (jqXHR) => {
console.log(jqXHR)
console.log('ERROR')
this.setState({isInProcess: false})
}
})
在我的服务器端,我有一个函数来查看我是否在 db 中需要用户:
async function findUser(data) {
try {
const user = await User.findOne({email: data.email,
password: data.password})
console.log('User was found')
return { user }
} catch (err) {
console.log('error', err)
throw err
}
}
将在此处执行:
app.get('/api/login', async (req, res) => {
const data = req.query
try {
const foundUserData = await findUser(data.formData)
return res.json(foundUserData)
} catch (err) {
return res.status(400).json(err)
}
})
【问题讨论】:
-
因为没有错误,所以只有在抛出错误时才会调用catch
-
我的函数 findUser 抛出错误
-
'User.findOne' 如果没有找到相等的,则返回一个空文档,所以虽然你的 'findUser' 可能会抛出错误,但它不会因为它永远不会触发。
-
谢谢你的解释,不知道。
标签: node.js database express mongoose