【发布时间】:2018-12-29 12:42:26
【问题描述】:
我从 React 发送 request:
export const loadItems = () => async dispatch => {
await axios
.get("http://localhost:8000/api/users")
.then(response => {
console.log(response.users);
dispatch(dataLoaded(response.users));
})
.catch(err => {
dispatch(dataLoadFailed(err));
});
};
但是没有response,而且服务器不取request,这里是我的服务器app代码:
server.js
// a lot of requires
const todoRoutes = require("./routes/serverRoute");
const url = "mongodb://localhost:27017/taskManager";
const app = express();
mongoose.Promise = global.Promise;
mongoose.connect(
url,
{ useNewUrlParser: true },
function(err) {
if (err) {
console.log(err);
} else console.log("Database connected");
}
);
app.get("/", (req, res) => {
res.sendFile(path.join(__dirname, "/public/index.html"));
});
// cors allow
app.use("/api", todoRoutes);
app.listen(8000, () => {
console.log("API started");
});
这是我使用的控制器,Schema 和 DB 都很好,我检查了从节点到控制台的输出,users 已定义并包含数据
const mongoose = require("mongoose");
const User = require("../models/UserModel");
module.exports = {
getUsers(req, res) {
User.find().exec((err, users) => {
if (err) {
console.log(err);
return res.send({ err });
} else {
console.log(users);
return res.send({ users });
}
});
}
};
这是我的路由器:
module.exports = router => {
router.get('/users', userController.getUsers);
}
【问题讨论】:
-
应该是
return await在你的第一个sn-p。 -
@Strelok 当我在
server.js中使用app.get时很好,但现在我尝试让它与mongoose一起使用,但它已损坏 -
顺便说一句,它是
arrowfunc,无论如何它都会返回axiospromise 结果
标签: javascript node.js reactjs mongoose axios