【发布时间】:2019-05-24 01:16:52
【问题描述】:
我正在尝试将 Mongoose 与我的 Node.js 连接,但它总是显示此错误。我正在按照this 教程创建身份验证系统。在编写 server.js 文件并尝试修复 routes.js 中的问题后,出现错误,不知道为什么,请帮助。
这是我的代码和错误:
server.js
// server.js
// set up ======================================================================
// get all the tools we need
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
var mongoose = require('mongoose');
var passport = require('passport');
var flash = require('connect-flash');
var morgan = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var session = require('express-session');
var configDB = require('./config/database.js');
// configuration ===============================================================
mongoose.connect(configDB.url); // connect to our database
// require('./config/passport')(passport); // pass passport for configuration
// set up our express application
app.use(morgan('dev')); // log every request to the console
app.use(cookieParser()); // read cookies (needed for auth)
app.use(bodyParser()); // get information from html forms
app.set('view engine', 'ejs'); // set up ejs for templating
// required for passport
app.use(session({ secret: 'ilovescotchscotchyscotchscotch' })); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(flash()); // use connect-flash for flash messages stored in session
// routes ======================================================================
require('./app/routes.js')(app, passport); // load our routes and pass in our app and fully configured passport
// launch ======================================================================
app.listen(port);
console.log('The magic happens on port ' + port);
routes.js:
module.exports = function(app, passport) {
//...
};
package.json
{
"name": "node-authentication",
"main": "server.js",
"dependencies" : {
"express" : "~4.0.0",
"ejs" : "~0.8.5",
"mongoose" : "~3.8.1",
"passport" : "~0.1.17",
"passport-local" : "~0.1.6",
"passport-facebook" : "~1.0.2",
"passport-twitter" : "~1.0.2",
"passport-google-oauth" : "~0.1.5",
"connect-flash" : "~0.1.1",
"bcrypt-nodejs" : "latest",
"morgan": "~1.0.0",
"body-parser": "~1.0.0",
"cookie-parser": "~1.0.0",
"method-override": "~1.0.0",
"express-session": "~1.0.0"
}
}
// config/database.js
module.exports = {
'url' : 'your-settings-here' // looks like mongodb://<user>:<pass>@mongo.onmodulus.net:27017/Mikha4ot
};
错误
The magic happens on port 8080
events.js:141
throw er; // Unhandled 'error' event
^
Error: failed to connect to [undefined:27017]
at null.<anonymous> (/Applications/XAMPP/xamppfiles/htdocs/ouestcharlie/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:556:25)
at emitThree (events.js:97:13)
at emit (events.js:175:7)
at null.<anonymous> (/Applications/XAMPP/xamppfiles/htdocs/ouestcharlie/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:156:15)
at emitTwo (events.js:87:13)
at emit (events.js:172:7)
at Socket.<anonymous> (/Applications/XAMPP/xamppfiles/htdocs/ouestcharlie/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:534:10)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at connectErrorNT (net.js:996:8)
at nextTickCallbackWith2Args (node.js:442:9)
at process._tickCallback (node.js:356:17)
【问题讨论】:
-
'./config/database.js'里面是什么?请问可以分享一下文件吗? -
该文件暂时为空。他们在命令“node server.js”运行良好后填充它。
-
您正在使用此文件连接到 MongoDB。因此,当文件为空时,JSON 文件中没有 url 属性,因此在连接到 MongoDB 时会出错。你确定文件是空的吗?
-
对不起,这里是 database.js 的代码 // config/database.js module.exports = { 'url' : 'your-settings-here' // 看起来像 mongodb:/ /
: @mongo.onmodulus.net:27017/Mikha4ot }; -
你可以使用 Mongo shell 连接到数据库吗? docs.mongodb.com/manual/reference/program/mongo
标签: javascript node.js mongodb rest