為什么express中打開服務端只用listen即可:
http.createServer(app).listen()與app.listen()的區別
寫法一:
var app = require('express')();
app.listen(port)
寫法二:
var app = require('express')();
var http = require('http').createServer(app);
http.listen(port);
為何可以這樣寫?
因為listen的源碼是:
/* listen源碼
var http = require('http');
app.listen = function listen() {
var server = http.createServer(this);
return server.listen.apply(server, arguments);
};
*
* */
app.listen = function (port) {
http.createServer(this).listen(port);
所以,當你想要設置host的時候,使用createServer來設置服務端就行,然后就可以listen(8081,’host’).但是其實沒有什么作用,host這里能寫的也就幾個值,0.0.0.0/127.0.0.1/localhost/本地IP,如果寫其他的會報錯。127.0.0.1/localhost就意味着只能在你本機調用這個服務器,但是如果你不設置,基本上就是本機,外機都可以調用。0.0.0.0就是給外機調用的