问题描述
这几天开始学node.js,纯新人。我想访问localhost:3000/about,然后加了
app.get(’/about’, function (req, res) { console.log('about'); res.send(’hello’);}).listen(3000);
但是打开页面却是404.
用的是express 4.14,以下是app.js全部代码。
var express = require(’express’);var path = require(’path’);var favicon = require(’serve-favicon’);var logger = require(’morgan’);var cookieParser = require(’cookie-parser’);var bodyParser = require(’body-parser’);var index = require(’./routes/index’);var users = require(’./routes/users’);// var about = require(’./routes/about’);var app = express();// view engine setupapp.set(’views’, path.join(__dirname, ’views’));app.set(’view engine’, ’jade’);// uncomment after placing your favicon in /public//app.use(favicon(path.join(__dirname, ’public’, ’favicon.ico’)));app.use(logger(’dev’));app.use(bodyParser.json());app.use(bodyParser.urlencoded({ extended: false }));app.use(cookieParser());app.use(express.static(path.join(__dirname, ’public’)));app.use(’/’, index);app.use(’/users’, users);// app.use(’/about’, about);// catch 404 and forward to error handlerapp.use(function (req, res, next) { var err = new Error(’Not Found’); err.status = 404; next(err);});// error handlerapp.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’);}); **app.get(’/about’, function (req, res) { console.log('about'); res.send(’hello’);}).listen(3000);**module.exports = app;
问题解答
回答1:你把路由放到错误处理回调后面了。根本就不会执行到那块代码。你要把自己的路由匹配规则放在 error handler 前面,如果一个路由都没匹配到,就到错误处理的代码了。