表达和文件系统是新手,对目录没有太多了解,因此会出现此错误。
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
答案 0 :(得分:0)
在中间件上调用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);
答案 1 :(得分:0)
看起来您的代码有些混乱。分离出您的端口侦听器-这应该始终排在最后。在此之前,将您的路由和中间件添加为对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);
});
答案 2 :(得分:0)
您应提供
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');