Javascript 获得;无法获取/public/signup.html“;expressjs中的错误
对于express和文件系统来说是非常新的,并且对目录没有太多的了解,所以出现了这个错误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
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
。几天前我自己也有同样的问题。使用编辑过的代码,您应该可以访问公共目录,不用担心。