Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Express仅加载主页_Html_Node.js_Express_Fs - Fatal编程技术网

Html Express仅加载主页

Html Express仅加载主页,html,node.js,express,fs,Html,Node.js,Express,Fs,我正在努力学习表达。我正在使用FS加载我的HTML页面。通过谷歌搜索,我唯一能找到的就是使用ASP.NET而不是Express Server.js: var express = require('express'); var path = require('path'); var fs = require('fs'); var app = express(); app.use(require('body-parser').urlencoded({ extended: true })); ap

我正在努力学习表达。我正在使用FS加载我的HTML页面。通过谷歌搜索,我唯一能找到的就是使用ASP.NET而不是Express

Server.js:

var express = require('express');
var path = require('path');
var fs = require('fs');

var app = express();

app.use(require('body-parser').urlencoded({ extended: true }));
app.use(express.static(path.join(__dirname+'/')))

app.get('/', function(a,b,c){
  fs.readFileSync('index.html');
});

app.post('/testaction', function(a,b){
    console.log(a.body.log);
    fs.readFileSync('Logged.html');
});

app.listen(3000);
index.html:

<!DOCTYPE html>
<html>
  <head>
    <title>Test Page</title>
  </head>
  <body>
    <form method="post" action="http://localhost:3000/testaction">
      <h1>Log This:</h1>
      <input type="text" name="log"/>
      <input type="submit", value="Press Me!"/>
    </form>
  </body>
</html>

测试页
记录以下内容:

为了提供文件,您不必使用fs。例如:

app.get('/', function(req, res, next) {
  res.render('index');
});
如果需要重定向,可以使用:

res.redirect('/staticFile.html');
删除以下行:

app.get('/', function(a,b,c){
  fs.readFileSync('index.html');
});
该行是中间件,适用于每个请求的所有路由:

app.use(express.static(path.join(__dirname+'/')))
它的目的是从您提供的任何路径为静态文件提供服务。在本例中,您是从根目录提供服务的,因此您可以导航到所有代码文件,例如

它适用于所有HTTP方法、get post put等

当您编写
app.get('/'
时,您将使用新路由覆盖该中间件,并尝试只提供一个文件。只需删除该代码,您将从上面指定的目录静态地提供所有内容

如果不想为代码文件提供服务,请将静态文件放在不同的文件夹(如“站点”)中,并设置该文件夹的静态路径,例如:

app.use('/', express.static(__dirname + '/site'));