开箱即用的节点/快递问题

我刚刚安装了Node和Express作为我正在学习的教程。 当我尝试运行我的server.js我得到这个。 怎么了? 我知道如何阅读回溯,但是我不想在Express上乱搞,因为在我看来它应该是原始的,刚刚安装完成。

example_app/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 [as static] (/Users/blahblah/folder/folder/folder/folder/folder/example_app/node_modules/express/node_modules/serve-static/index.js:47:21) at Object.<anonymous> (/Users/blahblah/folder/folder/folder/folder/folder/example_app/server.js:4:23) at Module._compile (module.js:435:26) at Object.Module._extensions..js (module.js:442:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:311:12) at Function.Module.runMain (module.js:467:10) at startup (node.js:136:18) at node.js:963:3 

这里是server.js:

 var express = require('express'), app = express(); app.use(express.static(__dirname, '/')); app.get('/customers/:id', function(req, res) { var customerId = parseInt(req.params.id); var data = {}; for (var i=0,len=customers.length;i<len;i++) { if (customers[i].id === customerId) { data = customers[i]; break; } } res.json(data); }); app.get('/customers', function(req, res) { res.json(customers); //res.json(500, { error: 'An error has occurred!' }); }); app.get('/orders', function(req, res) { var orders = []; for (var i=0,len=customers.length;i<len;i++) { if (customers[i].orders) { for (var j=0,ordersLen=customers[i].orders.length;j<ordersLen;j++) { orders.push(customers[i].orders[j]); } } } res.json(orders); }); app.delete('/customers/:id', function(req, res) { var customerId = parseInt(req.params.id); var data = { status: true }; for (var i=0,len=customers.length;i<len;i++) { if (customers[i].id === customerId) { customers.splice(i,1); data = { status: true }; break; } } res.json(data); }); app.listen(8080); console.log('Express listening on port 8080'); 

这是错误的:

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

它应该是:

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

如果你想附加一个子目录,你可以使用这个:

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

只是所以你知道,你正在使用一个不赞成使用的版本的Express 🙂