【发布时间】:2015-12-18 22:12:59
【问题描述】:
我刚刚为我正在编写的教程安装了 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');
【问题讨论】:
-
你能把你的
server.js代码放在你的帖子里吗?