我尝试获取userid并将其添加到一个函数中,该函数在节点服务器启动时运行。我已经尝试过axios和node-fetch发送GET请求并获取id,但它不起作用。我甚至试过app.get("/api/users/current")
它使用具有id的对象进行响应。我是不是漏掉了什么?谢谢
const userId = "";
module.exports = function mailUser(mailday) {
console.log("Users fired");
console.log(userId);
// axios.get("http://localhost:5001/api/users/current")
// .then((res) => {
// userId = res.id;
// console.log(UserId);
// })
// .catch((err) => {
// console.log(err);
// });
// console.log(userId);
let deffered = Q.defer();
Coworker.find({ user: userId }).exec((err, coworker) => {
let coworkers = [];
if (err) {
deffered.reject(console.log("failed: " + err));
} else {
// Add all users coworkers
for (let i = coworker.length - 1; i >= 0; i--) {
coworkers.push(coworker[i]);
}
deffered.resolve(coworkers);
}
console.log(coworkers);
});
return deffered.promise;
};发布于 2018-08-30 17:06:10
我认为你搞砸了两件事:
axios.get(...)中您可以调用console.log(UserId),尽管您的变量名为userId,开头带有小代码。id,您需要从<代码>D9u >对象而不是<代码>D10直接访问它。axios.get("http://localhost:5001/api/users/current") .then((res) => { userId = res.data.id;console.log(userId);}) .catch((err) => { console.log(err);});
我更喜欢将async/await与对象解析结合使用,因此它将是:
const fetchUserID = async () => {
const { data: { id: userId } } = await axios.get("http://localhost:5001/api/users/current");
return userId;
}因此,在检索userId的代码中,您只需调用该函数。
https://stackoverflow.com/questions/52085340
复制相似问题