我希望在创建服务器时加载像index.html
这样的文件。当我执行server.js
使用节点时,我会将响应发送为此res.end("text")
之类的文本。但是我希望加载index.html
。
我尝试使用sendFile()
中的app.get('/getFile')
加载它,但是当我在地址栏中输入内容时,我为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'));
})
})();
答案 0 :(得分:1)
在代码中更改以下内容:
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'));
});
我希望这会有所帮助。如果您有任何疑问,请与我们联系。
答案 1 :(得分:0)
看起来您的问题与所有静态资产有关。
在像 express 这样的应用程序服务器中,您有3种不同的元素可供使用:
静态内容:这是 html ,客户端 js , css ,图片等等
< / LI>服务器端模板或视图,是您使用某种模板库(如把手或 jade )组装的文档,用于生成 html
api以 xml 或更常见的 json 格式提供数据
您的问题是如何提供静态部分。
您应该将 express 应用的静态文件夹添加到构建 angular 应用的文件夹中。
不仅 index.html 您需要客户端 .js , .css 以及页面所需的所有图片。
<强>更新强>
Here您可以找到有关静态内容的 express 文档。
<强>更新强>
当您向 express 中间件添加静态文件夹时,您应该能够直接访问您的文件。
例如,如果您有2个文件:$project/static/main.js
和$project/static/js/my-lib.js
,则应使用以下网址:
http://127.0.0.1:3000/main.js
http://127.0.0.1:3000/js/my-lib.js
考虑到您正在端口3000上的localhost上执行节点http服务器。
如果您提供访问静态内容的特定路径,则必须重写您的网址。
如果您使用如下行:
app.use('/staticFolder', express.static('staticFolder'));
比上述文件的网址为:
http://127.0.0.1:3000/staticFolder/main.js
http://127.0.0.1:3000/staticFolder/js/my-lib.js
还要注意你提供的表达方式。
您应该给出正确的路径,并且使用绝对路径总是更安全:
app.use(express.static(__dirname + 'staticFolder'));
或
app.use('/staticFolder', express.static(__dirname + 'staticFolder'));
答案 2 :(得分:0)
<强> 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打开控制台上的链接。
注意:确保文件夹名称为public,并且有一个名为的文件 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文件。