我的简单路由不起作用,我不知道为什么



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

今天早些时候还在工作。服务器节点正在读取文件。出于某种原因,尽管它没有利用它。我的代码看起来和教程一模一样——尽管老师用的是PC,而我用的是Mac(尽管我不明白这有什么关系)。

在这个问题开始发生之前,我连接了我的数据库(下面的文件)——但是,我不明白为什么这会破坏我的路由。当我把这段代码放到server.js中时,我可以得到正确的路由。

帮助我stackoverflow,你是我唯一的希望!我只看到"Cannot GET/"

我的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'
}

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

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

但是你只是导入了那个函数而不是真正的调用 it:

require('./app/routes/routes');
相反,您需要调用它并将app作为参数传递:
require('./app/routes/routes')(app);

相关内容