4

我正在尝试使用 Node.js 服务器制作 az ExtJS 应用程序。我的服务器代码目前如下所示:

var express = require('express');

var app = express();

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

app.get('/employees', function(req, res){
console.log("hello");
});

app.listen(3000);

当我在浏览器中打开 localhost:3000 时,会加载 html 文件,但不正确。检查萤火虫我发现它无法在 html 中找到链接的文件。例如

"NetworkError: 404 Not Found - http://localhost:3000/ext-4/ext-debug.js".

这是非常合乎逻辑的,因为该 URL 上不存在该文件。我的问题是如何解决这个问题,以便它可以找到我文件系统上的每个链接文件。

我显然做错了什么或遗漏了什么,我在 node.js 中是全新的。

4

2 回答 2

5

看起来您没有配置 Express 的静态文件处理程序。

尝试添加此代码:

app.configure(function() {
    app.use(express.static(path.join(__dirname, 'public')));
    app.use(express.bodyParser());
    app.use(express.logger("short"));
});

它会var app = ...像这样紧随其后:

var express = require('express');

var app = express();
app.configure(function() {
    app.use(express.static(path.join(__dirname, 'public')));
    app.use(express.bodyParser());
    app.use(express.logger("short"));
});

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

app.get('/employees', function(req, res){
    console.log("hello");
});

app.listen(3000);

然后将您的静态文件放在该./public目录下。

于 2013-04-13T22:28:13.453 回答
3

您需要使用一些静态中间件,例如:http ://www.senchalabs.org/connect/static.html

注意 express 继承了 connect 所以你可以

app.use(express.static(filedir));

或完整的东西:

var express = require('express');

var app = express();

app.use(express.static(filedir));

app.get('/employees', function(req, res){
  console.log("hello");
  res.send("hello");
});

app.listen(3000);
于 2013-04-13T22:26:27.867 回答