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

Node.js 无法使用mongojs连接和查询mLab数据库,node.js,mongodb,mongojs,Node.js,Mongodb,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

我是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);
});
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;
和我的任务文件

tasks.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);
});
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;
但是当我尝试使用Postman/api/tasks时,没有响应。它持续加载了一段时间,然后说“无法得到任何响应”。 我还尝试了console.log my
db
变量,它显示了一个空对象,这意味着它没有连接到db

注意
我尝试连接到我的本地db实例,它也可以工作。我的实时连接字符串在RoboMongo中工作,但仍然无法使用上面的代码进行连接。

无法获得任何响应。
表示您没有响应请求。 如果有错误,您不会发送并记录它。 用
next
返回错误,并用错误记录器记录

db.tasks.find(function(tasks, err){
  if(err) {
    return next(err)
  }
  res.json(tasks);
});
在应用程序之前。听

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')
})

如果需要进一步帮助,请发布错误消息

在实现上述
内部服务器错误后打印的内容
,但我在我的代码中没有看到任何错误。请将此错误消息作为错误消息返回给http请求。真正的错误消息在控制台中。你不透露敏感信息我认为它不敏感:-),它很简单,没有定义,但它可能是敏感的。未定义的帮助很大。您实际上没有错误,但参数的顺序是错误的。首先是
err
然后是
tasks
真的,我是说真的。真不敢相信我错过了这些小东西,谢谢你!!!!它起作用了