我的简单路由不起作用,我无法弄清楚原因

时间:2015-07-22 17:23:06

标签: javascript node.js mongodb

我正在完成一个基本的节点教程,并且很难让我的routes.js文件工作。

今天早些时候工作了。服务器节点正在读取文件。出于某种原因,虽然没有使用它。我的代码看起来与教程完全一样 - 虽然老师在PC上我在Mac上(虽然我不明白为什么这很重要)。

在这个问题开始发生之前,我连接了我的数据库(下面的文件) - 但是再一次,我看不出为什么这会妨碍我的路线。当我把这个代码放在server.js中时,我可以得到正确的路由。

帮我堆栈溢出,你是我唯一的希望!我所看到的只是“不能获得/”

我的routes.js文件

var User = require('../models/user');

module.exports = function(app){
  app.get('/', function(req, res){
    res.send("Hello World");
  });

  // app.get('/:username/:password', function(req, res){
  //   var newUser = new User();
  //   newUser.local.username = req.params.username;
  //   newUser.local.password = req.params.password;
  //   console.log(newUser.local.username + " " + newUser.local.password);
  //   newUser.save(function(err){
  //     if(err)
  //       throw err;
  //   });
  //   res.send('Success!')
  // });

};

server.js

var express = require('express');
var app = express();
var port = process.env.PORT || 8080;

var cookieParser = require('cookie-parser');
var session = require('express-session');
var morgan = require('morgan');
var mongoose = require('mongoose');

//Config Database
var configDB = require('./config/database.js');
mongoose.connect(configDB.url);

//MIDDLEWARE is run during every interaction;
app.use(morgan('dev'));
//sets req.cookies
app.use(cookieParser());
app.use(session({
  //secret for user session
  secret: "ist0",
  //if the server goes down, the user can remain logged on -- still save to database
  saveUninitialized: true,
  //even if nothing has changed, resave
  resave: true
  }));

//ROUTES

require('./app/routes/routes');

// app.use('/', function(req, res){
//   //send is express function
//   res.send("Our first express program");
//   console.log(req.cookies);
//   console.log("============");
//   console.log(req.session);
// });

app.listen(port);

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

我的database.js文件:

module.exports = {
  'url': 'mongodb://localhost/meanboil'
}

1 个答案:

答案 0 :(得分:0)

您正在导出一个函数(一个期望app作为参数的函数):

module.exports = function(app) { ... }

但您只是导入该功能并且实际上并没有致电

require('./app/routes/routes');

相反,您需要调用它并将app作为参数传递:

require('./app/routes/routes')(app);