gpt4 book ai didi

node.js - MongoDB-mongoose 不响应 REST API

转载 作者:太空宇宙 更新时间:2023-11-04 02:03:06 24 4
gpt4 key购买 nike

我对 MongoDB-mongoose 有一个奇怪的问题,它不响应 REST API Mongoose 版本 - 4.11.3Mongo DB shell 版本 3.4.6一切都在我的计算机上本地

与 Mongo DB 的连接如下:

服务器.js

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log("Connected correctly to db");
});
...
var app = express();
var tasks = require('./server/routes/taskRouter');
app.use('/api/tasks',tasks);

打印日志“正确连接到数据库”。

架构(tasks.js)

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var taskSchema = new Schema({
name: String
});
var Task = mongoose.model('Task', taskSchema);
module.exports = Task;

最后是taskRouter.js

var express = require('express');
var bodyParser = require('body-parser');
var Task = require('../models/tasks');
var taskRouter = express.Router();
taskRouter.use(bodyParser.json());

taskRouter.route('/')
.get(function (req, res, next) {
Task.find({}, function (err, task) {
console.log("result"+task)
if (err) throw err;
res.json(task);
});
})

.post(function (req, res, next) {
var task = new Tasks();
console.log ('the name is '+req.body.name);
task.name = req.body.name;
task.save(function(err){
console.log ("arrived there");
if (err)
res.send(err);
res.json({message: "Task created"});
});
})

正如你所见,一切都是照章办事。但我从未从 task.save 和 Task.find 获取任何日志

我的“morgan ”记录器仅显示以下日志:

GET /api/tasks - - ms - -
POST /api/tasks - - ms - -

postman 卡在“正在加载”上,直到收到超时:无法得到任何响应。在 Mongo DB shell 中对任务集合执行的所有简单操作都没有任何问题。 Mongoose 会发生什么?提前致谢。

最佳答案

尝试使用以下代码创建一个单独的文件 config.js :

module.exports = {
'database': 'mongodb://localhost:27017/yourdatabasename'
}

server.js:

...
var config = require('./config'); // get our config file
...
var mongoose = require('mongoose');
...
mongoose.connect(config.database, { useMongoClient: true });
mongoose.connection.on('open', function(err, doc){
console.log("connection established");
var app = express();
var tasks = require('./server/routes/taskRouter');
app.use('/api/tasks',tasks);

db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log("Connected correctly to db");
});

关于node.js - MongoDB-mongoose 不响应 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45269731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com