получение ошибки «Cannot GET /public/signup.html» в экспресс-js - PullRequest
0 голосов
/ 30 августа 2018

Очень новый для экспресс и файловой системы и не имеет большого представления о каталогах, поэтому получаю эту ошибку.

var express= require('express');
var path= require('path');
var mysql= require('mysql');
var bodyParser= require('body-parser');

var app= express();
app.get('/', function(req, res) {
res.set( {
    'Access-control-Allow-Origin': '*'
});
return res.redirect('/public/signup.html');
 }).listen(2121);

console.log('server Running on : 2121');
app.use('/public',express.static(__dirname +"/public"));

Получение ошибки «Cannot GET /public/signup.html» Мои каталоги:

-Express
--Server.js
--public
---signup.html 

Ответы [ 3 ]

0 голосов
/ 30 августа 2018

Похоже, ваш код немного перемешан. Выделите слушателя порта - это всегда должно быть последним. Добавьте ваши маршруты и промежуточное программное обеспечение до этого как отдельные вызовы к app, а также зарегистрируйте ваш запрос на получение, чтобы перенаправить обратно на ваш сервер в html регистрации.

Это должно работать:

var express = require("express");
var path = require("path");

var port = 2121;
var app = express();

// Register Middlewares/Headers
app.use((req, res, next) => {
  res.header("Access-Control-Allow-Origin", "*");
  next();
});

// Register Static
app.use("/public", express.static(__dirname + "/public"));

// Register redirect
app.get('/', (req, res) => {
  res.redirect(req.baseUrl + '/public/signup.html');
});


app.listen(port, () => {
  console.log("server Running on : ", port);
});
0 голосов
/ 30 августа 2018

Вы должны предоставить

app.use('/public',express.static(__dirname +"/public"));

Перед использованием app.get

Полный пример:

var express= require('express');
var path= require('path');
var mysql= require('mysql');
var bodyParser= require('body-parser');

var app= express();
app.use('/public',express.static(__dirname +"/public"));
app.get('/', function(req, res) {
   res.set( {
       'Access-control-Allow-Origin': '*'
   });
   return res.redirect('/public/signup.html');
 }).listen(2121);

console.log('server Running on : 2121');
0 голосов
/ 30 августа 2018

Вы звоните listen на app, прежде чем позвонить use на своем промежуточном программном обеспечении, и в вашем коде есть несколько ошибок. Я думаю, что это должно работать:

app
  .use('/public',express.static(`${__dirname}/public`))
  .get('/', (req, res) => {
    res.header({
      'Access-control-Allow-Origin': '*'
    });
    res.redirect(`${req.baseUrl}/public/signup.html`);
  })
  .listen(2121);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...