如何使用Node Express提供静态文件

How do I serve a static file using Node Express?

本文关键字:静态 文件 Express 何使用 Node      更新时间:2024-05-13

我在Node.js中使用express设置一个非常基本的静态文件服务器时遇到了问题。我设置了一个简单的server.js,但在web浏览器中加载URL localhost:9000时看不到任何文件。

我看到的只是一个页面,上面写着:Cannot get /

var express = require('express');
var app = express();
app.use(function(req, res, next) {
  next();
});
app.use(express.static(__dirname));
app.listen(9000);

简单地说,您没有暴露任何内容。例如,你有一个index.html文件吗?试试这个:

app.get("/", function(req, res) {
    res.sendfile("index.html");
});

你经历过NodeSchool的工作漏斗吗?他们有涵盖这一点和更多内容的分步示例。

这是Express的工作坊。

这是我在研讨会上对"静态"问题的解决方案。

var express = require('express')
var app = express()
app.use(express.static(process.argv[3]||path.join(__dirname, 'public')));
 app.use(require('stylus').middleware(__dirname + '/public'));
app.post('/form', function(req, res) {
   res.writeHead(200, { 'Content-Type': 'text/plain' })
   res.end()
})
app.listen(process.argv[2])

Express不创建目录列表。即使它没有列出目录中的文件,但在web浏览器中点击它们时,它确实会提供这些文件。

将浏览器指向实际文件:

http://localhost:9000/public/test.html

起初我觉得这很困惑,因为我本来希望express服务器列出目录;当看到"某事"时。。。一个写着"无法获取/"的页面我认为该页面通常会有一个文件列表。