[英]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.