在读关于Connect中间件的时候,读到这样一句话 在Nodejs中,Web服务器和应用程序在同一进程中,所以中间件并不被Node.js原生支持。 我不懂这里所说的Web服务器和应用程序分别是指什么?我写的nodejs的后端的代码,不就是web服务器?也是后端的应用程序吗?
其实之前我用socke.io的时候就发现,如果使用socket.io模块和express结合,就必须用http模块创建一个http实例,然后让将这个实例传给 socket创建一个io.实例,就像这样 var app = require(‘express’)(); var server = require(‘http’).Server(app); var io = require(‘socket.io’)(server);
但是我发现如果只用express框架,不用创建http实例只需要几句 var app = require(‘express’)(); app.listen(3000); app.get(’/’,function(req,res){ res.sendFile(__dirname +’/index.html’); }); 就能正常使用路由什么了,好像这样后端的逻辑就可以正常写了,我之前的理解是http模块就是创建一个服务器,然后可以监听对服务器的请求,然后express中封装了http模块,所以就不用创建http模块了。但是如果是这样为什么使用socket的时候又要一个http实例呢。我我感觉connect中间键的这个说明是不是和这个问题有什么联系呢? 我是个新手,之前没写过后端,可能问的问题有些白痴,希望哪个前辈指点一下,谢谢