创build服务器时发送一个index.html文件

我想要在创build服务器时加载像index.html这样的文件。 当我使用节点执行server.js ,我发送一个响应,像这样res.end("text") 。 但我想要加载index.html

我尝试使用sendFile() app.get('/getFile') sendFile()加载它,但是当我在地址栏中input时,我得到了所有url的text 。即使对于localhost:3000/getFile

这是我的server.js:

  (function(){ var http = require("http"); var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var path = require('path'); // app.use(express.static(__dirname)); app.use(bodyParser.json()); app.use(express.static(__dirname+'/views')); var server = http.createServer(function(request, response) { response.end("text"); }); server.listen('3000'); console.log("Server is listening"); app.get('/getFile',function(request,response){ // response.end('shi'); response.sendFile(path.join('/index.html')); }) })(); 

EDITED

我只是做了一个文件夹,并写了下面的代码,我已经检查,这是工作。

 var express = require('express'); var app = express(); app.use(express.static(__dirname + '/public')); app.get('/', function(req, res) { res.sendFile(__dirname + '/public/indexz.html'); }); app.listen(1339); console.log('Open this link http://localhost:1337'); 

脚步

1将上面给出的代码复制到一个新文件夹中,并将其命名为文件server.js

2去你的cmd并传播到你的代码的位置,现在npm install express

3现在在控制台上键入node server

4打开控制台上的链接。

注意:确保文件夹名称是公开的,在那里有一个名为indexz.html的文件。

目录安排

编辑

关于正确的客户端文件安排

你将不得不把所有的文件保存在公共文件夹中,首先将它们附加在你的html文档中。

 <!-- Owl Carousel Assets --> <link href="css/owl.carousel.css" rel="stylesheet"> <link href="css/owl.theme.css" rel="stylesheet"> <script src="js/jquery.min.js"></script> <script src="angular.js"></script> <script src="controller.js"></script> 

然后在公共文件夹中,您将拥有名为js和css的文件夹以及公共文件夹的根目录中的html文件。

在您的代码中更改以下内容:

 var server = http.createServer(function(request, response) { response.end("text"); }); 

对此:

 var server = http.createServer(app); 

现在,您可以使用以下代码提供静态index.html文件:

 app.get('/', function(req, res, next){ // Serve the index.html file in the root directory of the website. res.sendFile(path.join('/index.html')); }); 

我希望这有帮助。 如果您有任何问题,请告诉我。

看起来你的问题是所有的静态资产。

在应用服务器中,像express这样的服务有三种不同的元素:

  1. 静态内容:这是所有的HTML ,客户端JSCSS ,图像等

  2. 服务器端模板或视图,是您用某种模板库(如句柄翡翠)生成HTML的文档

  3. API提供XML或更常见的JSON格式的数据

你的问题是如何提供静态部分。

你应该添加到你的快速应用程序的静态文件夹,你build立你的angular度应用程序的文件夹。

不只是index.html你需要客户端.js.css和页面所需的所有图像。

更新:

在这里你可以find关于静态内容的快速文档。

更新:

当您向快速中间件添加静态文件夹时,应该能够直接访问您的文件。

例如,如果您有两个文件: $project/static/main.js$project/static/js/my-lib.js ,则应该使用以下URL:

 http://127.0.0.1:3000/main.js http://127.0.0.1:3000/js/my-lib.js 

考虑到您正在执行端口3000上的本地主机上的节点http服务器。

如果你提供了访问静态内容的特定path,那么你必须重写你的url。

如果您使用如下行:

 app.use('/staticFolder', express.static('staticFolder')); 

比提到的文件将会是urls:

 http://127.0.0.1:3000/staticFolder/main.js http://127.0.0.1:3000/staticFolder/js/my-lib.js 

还要注意你提供的path。

你应该给出一个正确的path,并且使用绝对path总是比较安全的:

 app.use(express.static(__dirname + 'staticFolder')); 

要么

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