无法使用 mongojs 连接和查询 mLab 数据库

Unable to connect and query mLab database using mongojs

我是 MongoDB 的新手,我开始制作一个如下所示的测试应用程序:

server.js

var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');

var index = require('./routes/index');
var tasks = require('./routes/tasks');
var port = 8081;
var app = express();

// View Engine

app.set('views',path.join(__dirname,'views'));
app.set('view engine','ejs');
app.engine('html',require('ejs').renderFile);

// Set Static Folder

app.use(express.static(path.join(__dirname,'client')));

// Body parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended : false}));
app.use('/',index);
app.use('/api',tasks);
app.listen(port,function(){

console.log('Server started at port : ' + port);
});

和我的任务文件

tasks.js

var express = require('express');
var router = express.Router();

var mongojs = require('mongojs');
var db = mongojs('mongodb://user:pass@ds063186.mlab.com:63186/mytaskslist_ahsan',['tasks']);

router.get('/tasks',function(req,res,next){
db.tasks.find(function(tasks,err){
if(!err) res.json(tasks);
});
});

module.exports = router;

但是当我尝试 /api/tasks 使用 Postman 时,没有任何回复。它会持续加载一段时间,然后显示 "Couldn't get any response"。 我还尝试 console.log 我的 db 变量,它显示一个空对象,这意味着它没有连接到数据库。

备注 我尝试连接到我的本地数据库实例,它也能正常工作,我的实时连接字符串在 RoboMongo 中也能正常工作,但仍然无法使用上面的代码进行连接。

Couldn't get any response 表示您不响应请求。 如果有错误,您不发送并记录它。 用 next 返回错误并用错误记录器记录它。

db.tasks.find(function(tasks, err){
  if(err) {
    return next(err)
  }
  res.json(tasks);
});

之前app.listen

app.use((err, req, res, next) => {
  console.log(err.stack || err.message);
  if (res.headersSent)
    return next(err)
  res.status(500).send('Internal Server Error')
})

如果您需要进一步的帮助post错误信息