node.js - 异步函数 findOne 返回“未定义”
问题描述
我创建了一个函数来根据参数检查我的数据库中是否存在用户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);
};
信息数据服务:
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
属性,我会得到“未定义”。
我注意到另一件事可能是相关的: post 的路径是api/users
,而 get 的路径是api/users/:sub
。检查网络我发现异步函数向api/users/undefined
. 错误会在哪里?
解决方案
不确定是否User.findOne({sub})
正确,也许应该是那里的where子句?{ where: sub}
推荐阅读
- c - 如何在 AVR C 中实现 arduino Uno shiftOut()?
- python - 使用 json 文件和目录时间戳生成 csv 文件的 Python 实现
- dictionary - Golang 深度合并两张地图
- huawei-mobile-services - 为什么在 HMs Location Awareness 中进入障碍,在执行应用程序时几秒钟后状态变为 FALSE?
- angular - 在 Angular 模板中使用元组类型
- javascript - 如何模拟数据以使用模拟器测试 Firestore
- rest - 如何为相互依赖的资源设计 REST API?
- php - 数据未从 codeigniter 中的数据库中获取
- python - 基于反馈的knn实时更新
- react-native - 错误“无法从“components\Description.js”解析“./component/Search”