2017-01-05 14 views
1

Итак, я новичок в JavaScript, и я пытаюсь создать веб-приложение в Node.js. Я хочу добавить аутентификацию пользователя в мое приложение с паспортом. Но когда я пытаюсь запустить сервер в командной строке, я все время получаю эту ошибку:ТипError: uri.indexOf не является функцией

TypeError: uri.indexOf is not a function 
at checkReplicaSetInUri (C:\spectray\node_modules\mongoose\lib\index.js:115:30) 
at Mongoose.connect (C:\spectray\node_modules\mongoose\lib\index.js:238:40) 
at Object.<anonymous> (C:\spectray\server.js:15:10) 
at Module._compile (module.js:570:32) 
at Object.Module._extensions..js (module.js:579:10) 
at Module.load (module.js:487:32) 
at tryModuleLoad (module.js:446:12) 
at Function.Module._load (module.js:438:3) 
at Module.runMain (module.js:604:10) 
at run (bootstrap_node.js:394:7) 
at startup (bootstrap_node.js:149:9) 
at bootstrap_node.js:509:3 

Вот мой server.js файл:

var express = require('express'); 
var app = express(); 
var port = process.env.PORT || 8080; 
var mongoose = require('mongoose'); 
var passport = require('passport'); 
var morgan = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var session = require('express-session'); 
var flash = require('connect-flash'); 
var db = require('./config/database.js'); 

var configDB = require('./config/database.js'); 

mongoose.connect(db); 

app.use(morgan('dev')); 
app.use(cookieParser()); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 

app.set('view engine', 'ejs'); 

app.use(session({ secret: 'penniesfromheaven', resave: true, saveUninitialized: true })); 
app.use(passport.initialize()); 
app.use(passport.session()); 
app.use(flash()); 

require('./app/routes.js')(app, passport); 

app.listen(port); 
console.log('The magic happens on port ' + port); 

Что я донг неправильно?

+0

Что находится в './Config/database.js'? – cartant

+0

Что содержит ваш ** database.js **? –

+0

Моя база данных пуста. –

ответ

1

Вы можете добавить значение URL-адрес для ваших database.js

//database.js 
module.exports = 
{ 
    url: "mongodb://localhost:27017/sampleDB" 
} 

Это должно быть в вашем app.js

var db = require('../config/database.js'); 

mongoose.connect(db.url) 
+0

Добавил этот код в мою базу данных. Теперь мои подсказки подсказывают, что mongooose не определен. –

+0

i обновил ответ, последние две строки кода должны быть в app.js –

+0

В вашей базе данных.js содержится значение URL-адреса, которое открывается через module.exports. Вы должны потребовать это значение в app.js –

2

Вы можете просто написать следующее

var mongoose = require('mongoose'); 
    mongoose.connect('mongodb://localhost:27017/sampledatabase'); 

One что вы можете сделать здесь, вы можете создать файл database.js и вернуть соединение оттуда и может потребовать, чтобы где угодно

Смежные вопросы