【问题标题】:No response from node js (mongoose)节点 js 没有响应(猫鼬)
【发布时间】: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 一起使用,但它已损坏
  • 顺便说一句,它是arrow func,无论如何它都会返回axios promise 结果

标签: javascript node.js reactjs mongoose axios


【解决方案1】:

好的,我自己搞定了。问题出在这里:

router.get('/users', userController.getUsers);

应该是这样的:

router.get('/users', userController.getUsers());

【讨论】:

    猜你喜欢
    • 2015-11-19
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2022-01-26
    • 2020-06-03
    • 2015-06-20
    相关资源
    最近更新 更多