繁体   English   中英

在Express JS中出现“无法获取/public/signup.html”错误

[英]getting “Cannot GET /public/signup.html” error in express js

表达和文件系统非常新,并且对目录没有太多了解,因此会出现此错误。

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"));

收到错误“无法获取/public/signup.html”我的目录是:

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

在调用中间件上的use之前,您正在调用app listen ,并且代码中存在一些错误。 我认为这应该工作:

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);

看起来您的代码有些混乱。 分离出您的端口侦听器-这应该始终排在最后。 在此之前,将您的路由和中间件添加为对app单独调用,还注册您的get请求以将其重定向回服务器到注册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); }); 

您应该提供

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');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM