关于快递4路由器和推

时间:2016-01-06 12:10:54

标签: javascript node.js express

E:\ wordspace \的javascript \的NodeJS-演示\ node_modules \表达\ lib中\路由器\ index.js:502       this.stack.push(层);

TypeError: Cannot read property 'push' of undefined
    at Function.route (E:\wordspace\javascript\nodejs-demo\node_modules\express\lib\router\index.js:502:13)
    at Function.proto.(anonymous function) [as get] (E:\wordspace\javascript\nodejs-demo\node_modules\express\lib\router
\index.js:509:22)
    at Object.<anonymous> (E:\wordspace\javascript\nodejs-demo\routes\movie.js:6:8)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (E:\wordspace\javascript\nodejs-demo\app.js:11:13)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)

这是我的错误报告。

我无法忍受这个问题的根源,并且需要一种方法来解决它。

这是我的代码。

movie.js

var Movie = require('./../models/Movie.js');
var express = require('express');
var router = express.Router;

/* Get add page. */
router.get('/movie/add', function(req, res, next){
    if(req.params.name){
        return res.render('movie', {
            title:req.params.name+'|电影|管理|movie.me',
            label:'编辑电影:'+req.params.name,
            movie:req.params.name
        });
    } else {
        return res.render('movie', {
            title:'新增加|电影|管理|movie.me',
            label:'新增加电影',
            movie:false
        });
    }
});

router.post('/movie/add', function(req, res, next){
    res.send({'success':true});
});

app.js

var routes = require('./routes/index');
var movie = require('./routes/movie');
var users = require('./routes/users');

app.use('/', routes);
app.use('/movie', movie);
app.use('/users', users);

请帮帮我。

3 个答案:

答案 0 :(得分:41)

路由器是一个功能:EXECUTE 'BEGIN ' || rec || '; END';

答案 1 :(得分:1)

有更正,请使用

const router =  express.Router();

代替

const router =  express.Router;

答案 2 :(得分:0)

movie.js中,

var router = express.Router;

应该是

var router = express.Router();

因为express.Router是一个函数,它返回Express.js docs中提到的 mini-app 的实例。

  

路由器实例是一个完整的中间件和路由系统;因此,它通常被称为“迷你应用”。

快乐的编码。