Ответ 1
Маршрутизатор - это функция: var router = express.Router();
Е:\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);
Пожалуйста, помогите мне.
Маршрутизатор - это функция: var router = express.Router();
Есть исправление, пожалуйста, используйте
const router = express.Router();
вместо
const router = express.Router;
В movie.js
,
var router = express.Router;
должно быть
var router = express.Router();
потому что express.Router
- это функция, которая возвращает экземпляр мини-приложения, как указано в документах Express.js.
Экземпляр маршрутизатора представляет собой законченное промежуточное программное обеспечение и систему маршрутизации; по этой причине его часто называют "мини-приложением".
Удачного кодирования.
在movie.js
文件中,定义这个router
时,返回值应该是express.Router
的返回值,而不应该是这个函数故应该把var router = express.Router
改为var router = express.Router()
谢谢