2017-07-06 97 views
0

我正在为作为某种视频游戏伴侣工作的投资组合的应用程序工作,但我似乎无法让它连接到mongo服务器。尝试路由到索引与mongodb和nodejs时404(未找到)

我的代码似乎正常工作,因为它说,当我在节点中运行server.js时连接成功,因为这是我的终端所说的。

(节点:45137)DeprecationWarning:open()已被弃用在猫鼬> => 4.11.0,使用openUri()代替,或使用设置或connect()createConnection()选项useMongoClient如果>。请参阅http://mongoosejs.com> /docs/connections.html#use-mongo-client App在端口27017上运行! 猫鼬连接成功。

但是当我尝试把它放在本地主机失败

GET http://localhost:27017/ 404(未找到)

这是它里面的路线我的服务器代码。

我已经仔细检查过,以确保所有需要的样式和JavaScript都链接正确,但仍然没有好处。

// Dependencies 
 
var express = require("express"); 
 
var bodyParser = require("body-parser"); 
 
var mongoose = require("mongoose"); 
 
var exphbs = require("express-handlebars"); 
 
var request = require("request"); 
 

 
// Set mongoose to leverage built in JavaScript ES6 Promises 
 
mongoose.Promise = Promise; 
 

 

 
// Initialize Express 
 
var app = express(); 
 

 
// Use morgan and body parser with our app 
 
app.use(bodyParser.urlencoded({ 
 
    extended: false 
 
})); 
 

 
// Make public a static dir 
 
app.use(express.static(__dirname + "/public")); 
 

 
app.engine("handlebars", exphbs({ defaultLayout: "main" })); 
 
app.set("view engine", "handlebars"); 
 

 
// Database configuration with mongoose 
 
mongoose.connect("mongodb://localhost/usersdb"); 
 
var db = mongoose.connection; 
 

 
// Show any mongoose errors 
 
db.on("error", function(error) { 
 
    console.log("Mongoose Error: ", error); 
 
}); 
 

 
// Once logged in to the db through mongoose, log a success message 
 
db.once("open", function() { 
 
    console.log("Mongoose connection successful."); 
 
}); 
 

 

 
//routes 
 

 
app.get('/', function(req, res, next, error){ 
 
\t // Log any errors 
 
    if (error) { 
 
     console.log(error); 
 
    } 
 
    // Or send the doc to the browser as a json object 
 
    else { 
 
    res.render("index",{ title: 'Express' }); 
 
     } 
 
}); 
 

 

 

 

 
// Listen on port 27107 
 
app.listen(process.env.PORT || 27017, function() { 
 
    console.log("App running on port 27017!"); 
 
});

任何想法?

回答

0

您已设置为路由器的处理程序错误的签名,而不是app.get('/', function(req, res, next, error){,你需要使用app.get('/', function(req, res, next){,没有error PARAM,而如果发生应在首位,而错误PARAM发生时,这个处理器将是一个错误的中间件。

+0

这是问题!非常感谢! –

相关问题