gpt4 book ai didi

node.js - 无法使用 nodejs 连接到本地 mongodb 服务器

转载 作者:可可西里 更新时间:2023-11-01 09:29:46 24 4
gpt4 key购买 nike

当尝试从项目目录连接到 mongo 数据库时,我得到了这个

/Users/tadeothompson/Documents/design work/stressful/site/node_modules/connect-mongo/lib/connect-mongo.js:133 抛出错误; ^MongoError: 无法连接到服务器 在 Collection.listIndexes (/Users/tadeothompson/Documents/design work/stressful/site/node_modules/mongoose/node_modules/mongodb/lib/collection.js:1712:11) 在 indexInformation (/Users/tadeothompson/Documents/design work/stressful/site/node_modules/mongoose/node_modules/mongodb/lib/db.js:1531:25) 在 Db.indexInformation (/Users/tadeothompson/Documents/design work/stressful/site/node_modules/mongoose/node_modules/mongodb/lib/db.js:1498:44) 在 ensureIndex (/Users/tadeothompson/Documents/design work/stressful/site/node_modules/mongoose/node_modules/mongodb/lib/db.js:1003:8) 在 Db.ensureIndex (/Users/tadeothompson/Documents/design work/stressful/site/node_modules/mongoose/node_modules/mongodb/lib/db.js:982:44) 在 ensureIndex (/Users/tadeothompson/Documents/design work/stressful/site/node_modules/mongoose/node_modules/mongodb/lib/collection.js:1772:13) 在 Collection.ensureIndex (/Users/tadeothompson/Documents/design work/stressful/site/node_modules/mongoose/node_modules/mongodb/lib/collection.js:1760:44) 在 connectionReady (/Users/tadeothompson/Documents/design work/stressful/site/node_modules/connect-mongo/lib/connect-mongo.js:141:27) 在 Db.collection (/Users/tadeothompson/Documents/design work/stressful/site/node_modules/mongoose/node_modules/mongodb/lib/db.js:425:20) 在 initWithNativeDb (/Users/tadeothompson/Documents/design work/stressful/site/node_modules/connect-mongo/lib/connect-mongo.js:207:20) 在 process._tickCallback (node.js:355:11) 在 Function.Module.runMain (module.js:503:11) 在启动时 (node.js:129:16) 在 node.js:814:3

使用一个简单的应用程序成功连接(代码如下)

*

var MongoClient = require('mongodb').MongoClient;
// Connect to the db
MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) {
if(!err) {
console.log("We are connected");
}
});

*

the main node file of the app in question code is below:


var express = require('express');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var expressSession = require('express-session');
var mongoStore = require('connect-mongo')({session: expressSession});
var mongoose = require('mongoose');
require('./models/users_model.js');
var conn = mongoose.connect('mongodb://localhost:27017/stressfullproject');
var app = express();
app.engine('html', require('ejs')._express);
app.set('views', './site' + '/views');
app.set('view engine', 'html');
app.use(bodyParser());
app.use(cookieParser());
app.use(expressSession({
secret: 'stress',
cookie: {maxAge: 60*60*1000},
store: new mongoStore({
db: mongoose.connection.db,
collection: 'sessions'
})
}));
require('./routes/routes')(app);
app.listen(80);

*

我定义的模式

 *var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var UserSchema = new Schema({
username: { type: String, unique: true },
email: String,
hashed_password: String
})
mongoose.model('User', UserSchema)*

因为我可以连接到其他应用程序,我认为这是我的模块之一的问题?我到处搜索。

提前致谢

最佳答案

我最好的猜测是你正在使用两个模块,即 MongoClient 和 mongoose 都试图连接到端口 27017。现在在这场比赛中只有一个会获胜并将锁定该端口。如果你尝试绑定(bind)到那个端口,它会给你一个错误,类似于你在上面得到的错误。我的建议是,不要使用 MongoClient。只使用 Mongoose 。 Mongoose 有很多可用的帮助,youtube 上的许多视频教程都使用它。如果这没有帮助,请告诉我。

让我们为您准备一些代码吧。我现在不使用 MongoClient,但当我以前写这段代码时,看到它有效。如果没有,请粘贴堆栈跟踪。

var MongoClient=require('mongodb').MongoClient,

server=require('mongodb').Server;

var mongoclient=new MongoClient(new server('localhost',27017));

mongoclient.connect('mongodb://localhost:27017/course',function(err,db)
{
if(err) throw err;
//var db=mongoclient.db('course');
var query={'grade':100};

db.collection('grades').findOne(query,function(err,doc)
{
if(err) throw err;
console.dir(doc);
db.close();
});
});

关于node.js - 无法使用 nodejs 连接到本地 mongodb 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33879760/

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