Node.js 使用visual node会导致express不提供静态文件

Node.js 使用visual node会导致express不提供静态文件,node.js,visual-studio-2012,express,Node.js,Visual Studio 2012,Express,我有一个正在工作的项目,但我决定尝试Visual Node(),以便在Visual Studio环境中使用Node.js 出于某种原因,该行不影响express为静态文件提供服务: app.use(express.static(path.join(__dirname, 'client'))); 当试图: res.sendfile('client/views/index.html'); 引擎在错误路径下搜索文件: 404 Error: ENOENT, stat 'C:\Windows\sys

我有一个正在工作的项目,但我决定尝试Visual Node(),以便在Visual Studio环境中使用Node.js

出于某种原因,该行不影响express为静态文件提供服务:

app.use(express.static(path.join(__dirname, 'client')));
当试图:

 res.sendfile('client/views/index.html');
引擎在错误路径下搜索文件:

404 Error: ENOENT, stat 'C:\Windows\system32\client\views\index.html'
问题是
'C:\Windows\system32\'
来自哪里

与此相反,应该有我的项目文件夹。

首先,这是:

app.use(express.static(path.join('client'))

是一个中间件适配器,因此express将自动为
客户端
文件夹中的静态文件提供服务(使用
\uu dirname
),以建立当前本地目录作为参考

当你使用

res.sendfile('client/views/index.html')

Node和express将使用当前本地目录+路径为文件提供服务。但是,当您使用Visual Node时,它似乎没有正确设置存储应用程序的本地路径,因此不幸地将该路径设置为
system32
目录

如果切换到存储和运行应用程序的目录,您可以看到应用程序的工作方式:

> cd c:\dev\greatwebapp
> node app.js
(当然用真名代替)

您将看到如下内容:

Express server listening on port 3000
然后,您应该能够将浏览器导航到其中一条管线/路径,并且文件应正确显示。似乎是Visual Node有问题:

要解决此问题,您可以:


res.sendfile(uu dirname+'/client/views/index.html')

希望他们能把它修好。感谢您的解决方案!