recherche
Questions et réponses node.js - Projet de build express 404
node.js - Projet de build express 404
大家讲道理 2017-05-24 11:38:45 voir 901

0

1. Création d'un projet avec express4, et ses chemins par défaut "/" et "/users" sont accessibles. Par conséquent, ajoutez le chemin et les fichiers de chemin en fonction de son fichier d'entrée, et créez le modèle ejs correspondant. la page d'accueil est accessible et peut être connectée au fichier de style normalement, tandis que les autres chemins affichent 404.



PS : Désolé de ne pas expliquer clairement comment l'erreur s'est produite : en exécutant le débogage localement, localhost:3000 peut accéder à la page d'accueil, mais localhost:3000/login ne peut pas pointer vers la page de connexion et 404 apparaît comme suit :
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 %>

Veuillez me donner votre réponse.

Your Answer
soumettre

2 réponse
0

//Un des fichiers de chemin (login.js)
router.get('/', function(req, res, next) {
res.render('login', { title: 'Login' });
} );

Changez-le simplement par ceci

Parce que le chemin correspondant de
app.use('/login',router);
router.get('/login',()=>{})
est /login/login

2017-05-24 11:40:45

soumettre

0

Changez le chemin d'accès en localhost:3000/login/login

2017-05-24 11:40:45

soumettre

Hot Tools

Collection de bibliothèques d'exécution vc9-vc14 (32 + 64 bits) (lien ci-dessous)

Collection de bibliothèques d'exécution vc9-vc14 (32 + 64 bits) (lien ci-dessous)

Téléchargez la collection de bibliothèques d'exécution requises pour l'installation de phpStudy

VC9 32 bits

VC9 32 bits

Bibliothèque d'exécution de l'environnement d'installation intégré VC9 32 bits phpstudy

Version complète de la boîte à outils du programmeur PHP

Version complète de la boîte à outils du programmeur PHP

Programmer Toolbox v1.0 Environnement intégré PHP

VC11 32 bits

VC11 32 bits

Bibliothèque d'exécution de l'environnement d'installation intégré VC11 phpstudy 32 bits

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser