这样子的一个express简单项目文件执行会出现403 Forbidden的错误:
var express = require('express'); var app = express(); app.use(express.static('public')); app.get('/', function (req, res) { res.send('Hello World'); }) var server = app.listen(8088, function () { var host = server.address().address var port = server.address().port console.log("应用实例,访问地址为 http://%s:%s", host, port) })
但是呢,这样的就不会出现错误,正常:
var express = require('express'); var app = express(); app.use(express.static('public')); app.get('/', function (req, res) { res.send('Hello World'); }) var server = app.listen(8088, '127.0.0.1', function () { var host = server.address().address var port = server.address().port console.log("应用实例,访问地址为 http://%s:%s", host, port) })
差别就在于我在listen函数里指定了hostname。
app.listen(port, [hostname], [backlog], [callback])
我的机器是win7 64位的X86机器,应用里面不配hostname就出问题。
这个问题,不是所有的机器都会出现,也不是所有的浏览器会出现。。。