Heim  >  Fragen und Antworten  >  Hauptteil

node.js – Express-Build-Projekt 404

1. Erstellt ein Projekt mit express4, auf dessen Standardpfade „/“ und „/users“ zugegriffen werden kann. Fügen Sie daher den Pfad und die Pfaddateien basierend auf der Eintragsdatei hinzu und erstellen Sie als Ergebnis die Auf die Homepage kann zugegriffen werden und sie kann normal mit der Style-Datei verbunden werden. Andere Pfade werden als 404.

angezeigt

PS: Entschuldigung, dass ich nicht klar erklärt habe, wie der Fehler aufgetreten ist: Beim lokalen Ausführen des Debuggens kann localhost:3000 auf die Homepage zugreifen, aber localhost:3000/login kann nicht auf die Anmeldeseite verweisen und 404 wird wie folgt angezeigt:
test
|
---public
|
---routes
    |
    ---login.js(路由文件)
|
---view
    |
    ---login.ejs(模板文件)
|
---app.js(入口)
//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 login = require('./routes/login');
var register = require('./routes/register');
var logout = require('./routes/logout');
var post = require('./routes/post');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// 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('/login', login);
app.use('/register', register);
app.use('/logout', logout);
app.use('/post', post);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// 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;
//路径文件之一(login.js)
var express = require('express');
var router = express.Router();

/* GET login listing and render page. */
router.get('/login', function(req, res, next) {
  res.render('login', { title: '登录' });
});

module.exports = router;
//模板文件之一(这块应该没问题,被引入的我就不贴了)(index.ejs)
<%- include header %>
主页
<%- include footer %>

Bitte geben Sie mir Ihre Antwort.

大家讲道理大家讲道理2725 Tage vor754

Antworte allen(2)Ich werde antworten

  • 为情所困

    为情所困2017-05-24 11:40:45

    //路径文件之一(login.js)
    router.get('/', function(req, res, next) {
    res.render('login', { title: '登录' });
    });

    改成这样就可以了

    因为
    app.use('/login',router);
    router.get('/login',()=>{})
    的匹配路径是 /login/login

    Antwort
    0
  • 高洛峰

    高洛峰2017-05-24 11:40:45

    访问路径改为localhost:3000/login/login

    Antwort
    0
  • StornierenAntwort