如何正确导入Express路由模块?

时间:2019-02-06 02:58:13

标签: node.js express

我用if ($(".section").length) { var script_arr = [ 'moment.js', 'daterangepicker.js', ]; $.getMultiScripts(script_arr).done(function() { $('#date-picker').daterangepicker({ "opens": "left", singleDatePicker: true, isInvalidDate: function(date) { var disabled_start = moment('09/02/2018', 'MM/DD/YYYY'); var disabled_end = moment('09/06/2018', 'MM/DD/YYYY'); return date.isAfter(disabled_start) && date.isBefore(disabled_end); } }); }); } 生成了一个项目。 在我的路线目录中,我有2个文件:express-generatorindex.js,以及处理users.js路线的about.js

访问/about会产生/about

Error 404 : Page Not found中为/about添加处理程序时,错误消失了。

app.js

./app.js

var createError = require('http-errors'); var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var logger = require('morgan'); var indexRouter = require('./routes/index') var aboutRouter = require('./routes/about'); var usersRouter = require('./routes/users'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'pug'); app.use(logger('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', indexRouter); app.use('/about', aboutRouter); app.use('/users', usersRouter); // catch 404 and forward to error handler app.use(function(req, res, next) { next(createError(404)); }); // error handler app.use(function(err, req, res, next) { // set locals, only providing error in development\ res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page res.status(err.status || 500); res.render('error'); }); module.exports = app;

./route/index.js

var express = require('express'); var app = express(); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.json( { message : "Home Page (Requeste for list)", method : req.method, Succes : "True" }); // res.render('index', { title: 'Express' }); }) module.exports = router;

./routes/about.js

2 个答案:

答案 0 :(得分:1)

正在发生的事情是,在app.js中,您已将about rout的根目录设置为“ / about”,并在“ about.js”中再次指定了router.get('/about'),这将导致访问关于必须使用/about/about的路线(您可以先尝试解决)。为了获得期望的结果,应在router.get(´/´)内使用about.js,并在app.js中使用app.use('/about', aboutRouter);。您可以查看https://expressjs.com/en/guide/routing.html了解更多信息。问候。

答案 1 :(得分:1)

像这样重写您的router/about.js

var express = require('express');
var router = express.Router();

router.get('/', function(req, res) {
    res.send('im the about page!');
});
router.post('/', function(req, res) {
    res.send('im the about page!');
});


module.exports = router;

由于在您的app.js中,您已经在第24行声明了前缀/about,因此您不必在router/about.js中再次这样做