sia*_*sia 53 get node.js express
这就是我所拥有的,文件名"default.htm"实际存在并在使用NodeJS执行readFile时加载.
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/default.htm'));
app.listen(process.env.PORT);
Run Code Online (Sandbox Code Playgroud)
错误(在浏览器中):
Cannot GET /
Run Code Online (Sandbox Code Playgroud)
Sde*_*ock 35
您通常希望渲染这样的模板:
app.get('/', function(req, res){
res.render('index.ejs');
});
Run Code Online (Sandbox Code Playgroud)
但是,您也可以提供静态内容 - 这样做可以使用:
app.use(express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)
现在/public
,项目目录中的所有内容都将作为静态内容传递到您网站的根目录,例如,如果您放置default.htm
在公共文件夹中,如果可以通过访问/default.htm
查看快速API和Connect Static中间件文档以获取更多信息.
小智 11
我注意到我忘记了路线开头的“斜线”,如下所示,我遇到了同样的错误:
错误的 :
app.get('api/courses', (req, res) => { ... }
)
Run Code Online (Sandbox Code Playgroud)
正确的 :
app.get('/api/courses', (req, res) => { ... }
)
Run Code Online (Sandbox Code Playgroud)
您需要定义根路由.
app.get('/', function(req, res) {
// do something here.
});
Run Code Online (Sandbox Code Playgroud)
哦,你不能指定一个文件express.static
.它需要是一个目录.该app.get('/'....
负责将相应地呈现该文件.您可以使用快速'渲染方法,但您必须添加一些配置选项,这些选项将告诉您的视图在哪里,传统上在app/views/
文件夹中.
小智 5
我遇到了同样的问题,所以这就是我提出的问题.这就是我跑步时文件夹结构的样子node server.js
app/
index.html
server.js
Run Code Online (Sandbox Code Playgroud)
打印出__dirname
路径后,我意识到__dirname
路径是我的服务器运行的地方(app/
).
那么,你的问题的答案是这样的:
如果您的server.js
文件与您尝试呈现的文件位于同一文件夹中,那么
app.use(express.static(__dirname + '/default.htm'));
Run Code Online (Sandbox Code Playgroud)
应该是
app.use(express.static(__dirname));
Run Code Online (Sandbox Code Playgroud)
如果你有一个像这样的文件夹树,你唯一想要使用原始语法的方法是:
app/
index.html
server.js
Run Code Online (Sandbox Code Playgroud)
在目录index.html
中的哪个位置app/
,而server.js
在根目录中(即与目录相同的级别app/
).
总的来说,您的代码可能如下所示:
var express = require('express');
var app = express();
app.use(express.static(__dirname));
app.listen(process.env.PORT);
Run Code Online (Sandbox Code Playgroud)
我发现自己在这个页面上,因为我也收到了Cannot GET/
消息.我的情况与我express.static()
用于定位文件夹的情况不同,正如之前的答案所提供的那样,而不是像OP那样的文件.
我在通过Express'文档挖掘后发现的是express.static()
将其索引文件定义为index.html
,而我的文件被命名index.htm
.
为了将其与OP的问题联系起来,有两种选择:
1:使用其他答案中建议的代码
app.use(express.static(__dirname));
Run Code Online (Sandbox Code Playgroud)
然后将default.htm
文件重命名为index.html
要么
2:index
在调用时添加属性express.static()
以将其指向所需的索引文件:
app.use(express.static(__dirname, { index: 'default.htm' }));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
111878 次 |
最近记录: |