我创建了一个函数,用于根据sub
参数检查数据库中是否存在用户。
我希望我的函数给我一个true
或false
值。
前端:
......
async function exist(sub) {
const result = await InfoDataService.get(sub)
alert(result.sub);
}
......
控制器:
// Find a User with sub
exports.findOne = (req, res) => {
const sub = req.params.sub;
User.findOne({sub})
.then(data => {
res.send(data);
})
.catch(err => {
res.status(500).send({
message: "Error retrieving User with id=" +sub
});
});
};
路线:
module.exports = app => {
const users = require("../controllers/user.controller.js");
const router = require("express").Router();
// Retrieve
router.get("/:sub", users.findOne);
app.use('/api/users', router);
};
InfoDataService :
import http from "../http-common.js";
const get = sub => {
return http.get(`/users/${sub}`);
};
export default {
get,
};
http公用:
import axios from "axios";
export default axios.create({
method: 'GET',
baseURL: "http://localhost:8080/api",
});
如果我仅使用result.sub
而不是result
可以检索对象,但是如果尝试访问.sub
属性,则会得到“未定义”。
我注意到另一件事可能与之相关:发布的路径为api/users
,而获取的路径为api/users/:sub
。
检查网络后,我发现异步功能向api/users/undefined
发送了请求。错误在哪里?
答案 0 :(得分:1)
不确定User.findOne({sub})
是否正确,是否应该在其中使用where子句? { where: sub}