连接到 MongoDB 但 Express .get 返回 404 错误?
Posted
技术标签:
【中文标题】连接到 MongoDB 但 Express .get 返回 404 错误?【英文标题】:Connected to MongoDB but Express .get returns 404 error? 【发布时间】:2016-06-02 03:28:54 【问题描述】:我有一个在 Express v4 上使用 MongoDB + Mongoose 的应用程序。我相信我已经成功连接了我的数据库,但是当我在 Postman 上测试连接时,我的 GET 请求返回了 404 错误。
有人能在我的代码中发现错误吗?
服务器.js
...
var mongo = require('mongodb');
var mongoose = require('mongoose');
require('./models/Thread');
require('./routes/thread');
mongoose.connect('mongodb://localhost:27017/pudo');
var app = express();
var router = express.Router();
...
/models/Thread.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ThreadSchema = new mongoose.Schema(
name: String
);
var Thread = mongoose.model('Thread', ThreadSchema);
module.exports = Thread;
/routes/thread.js
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var Thread = mongoose.model('Thread');
router.get('/threads', function(req, res, next)
Thread.find(function(err, threads)
if(err)return next(err);
res.json(threads);
);
);
module.exports = router;
我相信这是我的代码之间的最小连接,以便它工作。但是,向 /threads 发送 GET 会返回 404 错误,而不是任何数据库记录。
【问题讨论】:
如果mongodb连接正常,请检查您代码中使用的url... 你指的是这个网址mongoose.connect('mongodb://localhost:27017/pudo');
吗?没错
不,网址get /threads
,请查看app.listen()
中的ip地址和端口列表...
【参考方案1】:
我找到了解决方案!而不是:
require('./routes/thread');
使用这个:
router.use(require('./routes/thread'));
【讨论】:
以上是关于连接到 MongoDB 但 Express .get 返回 404 错误?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Mongoose 连接到 MongoDB Atlas
在 express.js 中连接到 Mongodb-Native-Driver