创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这样的服务有三种不同的元素:
-
静态内容:这是所有的HTML ,客户端JS , CSS ,图像等
-
服务器端模板或视图,是您用某种模板库(如句柄或翡翠)生成HTML的文档
-
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'));
- 尝试在命令行中创build一个Express应用程序
- Node.js中Express 4.0的res.rendercallback参数的目的是什么?
- 如何让我的deserializeUserfunction在护照login后不断运行?
- 在ExpressJS中可以禁用/删除特定路由的中间件吗?
- asynchronous和在nodejsrecursion
- JavaScript / Node.js:为什么原型.__ proto__ =原型,而不是新的
- 在节点js中的特定数据库操作之后使用multer上传文件
- 从外部Web服务获取图像,并将其传递给另一个快速js路由
- http.get和node.js中的查询string