越来越[得不到/test.html在node.js中

越来越[得不到/test.html在node.js中

问题描述:

我完全新的节点,我试图让这个例子的工作:越来越[得不到/test.html在node.js中

[/path/to/node/server.js ]

var connect = require('connect'); 
var serveStatic = require('serve-static'); 
var app = connect(); 
app.use(serveStatic('../angularjs'), {default: "test.html"}); 
app.listen(5000); 

我有angularjs文件夹内的文件的test.html: [/path/to/node/angularjs/test.html]

但是,当我请求 (本地主机:5000 /测试.html) 我正在导航器中:

无法获取/test.html。

任何想法?

+0

您可能想要使用Express 4.x,它在节点中提供了很好的功能,但使用了[不同的初始化顺序](http:// expr essjs.com/starter/hello-world.html)而不需要连接模块。 – jfriend00 2014-10-21 22:49:38

您需要提供server-static,其绝对路径为angularjs以确保它在预期路径中搜索。

您可以使用脚本的__dirname为基准,为它:

...serveStatic(__dirname + '/angularjs')... 

或者与path.join()

var path = require('path'); 
// ... 

...serverStatic(path.join(__dirname, 'angularjs'))... 

这是因为file system module,即serve-static使用,解决了相对来自current working directoryprocess.cwd())的路径。

因此,是否../angularjs解析为/path/to/node/angularjs取决于server.js从哪个目录开始。

目前,它可以从/path/to/node/angularjs/工作:

$ cd /path/to/node/angularjs 
$ node ../server.js 

# resolves: '/path/to/node/angularjs' + '../angularjs' 
# to:  '/path/to/node/angularjs' 

或者,通过改变../(父目录)./(当前目录),它可以从/path/to/node开始代替:

...serveStatic('./angularjs')... 
$ cd /path/to/node 
$ node server.js 

# resolves: '/path/to/node' + './angularjs' 
# to:  '/path/to/node/angularjs'