与节点运行快速错误

我试图在我的Mac上启动一个非常简单的服务器,以便我可以从本地主机访问文件。

我有节点和快速安装,这就是它在我的服务器文件。

var express = require('express'), app = express(); app.use(express.static(__dirname, '/')); app.listen(8080); console.log("App listening on port 8080"); 

当我尝试做:

 node server 

我得到这个回应:

 /Users/mt_slasher/node_modules/express/node_modules/serve-static/index.js:47 var opts = Object.create(options || null) ^ TypeError: Object prototype may only be an Object or null: / at Function.create (native) at Function.serveStatic (/Users/mt_slasher/node_modules/express/node_modules/serve-static/index.js:47:21) at Object.<anonymous> (/Users/mt_slasher/Desktop/My Projects/Basket/Site/server.js:4:23) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Function.Module.runMain (module.js:501:10) at startup (node.js:129:16) at node.js:814:3 

我已经在Windows计算机上使用相同的文件运行这个相同的文件,并没有问题。

经过一番挖掘,我发现这条线似乎是主要的罪魁祸首:

 app.use(express.static(__dirname, '/')); 

有人能告诉我可能发生什么事吗?

那是因为你传递“/”作为第二个参数(选项)

 app.use(express.static(__dirname + '/')); 

请参阅服务静态:

 function serveStatic(root, options) ... 

https://github.com/expressjs/serve-static/blob/master/index.js

还要注意,最好使用不同于你的根目录,例如express.static(__dirname + '/public')来避免暴露你的根目录。

express.static用于定义“静态”文件所在的目录,在这里查看更多信息 。

它只接受一个string,你想成为静态的path:

所以你的代码应该是:

 app.use(express.static('/')); 

要么

 app.use(express.static(__dirname + '/')); 

但这没有多大意义,恕我直言。

删除行或定义您的资产文件的真实path。

您传递给express.static的第二个参数不正确。 删除第二个参数。 app.use(express.static(__目录名));