Javascript 获得;无法获取/public/signup.html“;expressjs中的错误

Javascript 获得;无法获取/public/signup.html“;expressjs中的错误,javascript,node.js,express,Javascript,Node.js,Express,对于express和文件系统来说是非常新的,并且对目录没有太多的了解,所以出现了这个错误 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( { 'Acces

对于express和文件系统来说是非常新的,并且对目录没有太多的了解,所以出现了这个错误

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

这应该起作用:

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);
var express=require(“express”);
var路径=要求(“路径”);
var端口=2121;
var-app=express();
//注册中间件/标题
应用程序使用((请求、恢复、下一步)=>{
res.header(“访问控制允许原点”、“*”);
next();
});
//寄存器静态
app.use(“/public”,express.static(uu dirname+“/public”);
//寄存器重定向
应用程序获取(“/”,(请求,请求)=>{
res.redirect(req.baseUrl+'/public/signup.html');
});
应用程序侦听(端口,()=>{
log(“运行在:,端口上的服务器”);
});您应该提供

app.use('/public',express.static(__dirname +"/public"));
在使用
应用程序之前。获取

完整示例:

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

但是,如果我想在程序中添加目录以访问多个文件,该怎么办呢?对不起,我意识到我误解了您的代码,并编辑了我的答案。您需要先调用
use
,然后再调用
listen
。几天前我自己也有同样的问题。使用编辑过的代码,您应该可以访问公共目录,不用担心。