无法使用 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错误信息
我是 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错误信息