在Node.JS和Express之间,有人可以解释Web服务器适合的位置吗?

air*_*101 2 web-services node.js express web

我最近开始使用Node JS和Express进行服务器端开发,但我对它如何运作感到困惑.根据我的理解,网络服务器存储网站并返回页面,因为它们是从浏览器请求的.Apache是​​一个Web服务器,你可以将它用于像XAMPP这样的堆栈.ASP.NET是一个使用IIS Web Server并与之通信的框架.

但是使用Node,服务器在哪里?Node是运行时环境,用于创建服务器,Express是一个Web FRAMEWORK来帮助处理服务器http请求,但实际的Web SERVER是什么/在哪里?也许我只是不了解网络服务器或什么?有人请澄清!

Jit*_*ria 5

因为Node,我们不需要像Apache这样的Web服务器或类似的容器,节点可以监听端口并充当服务器本身,

expressweb application framework for Node它提供的功能集,使生活更轻松.

对于模糊的比较,如果Node是电话,则Node + express将是智能手机. - 两者都可以做同样的事情,但后者有更方便的功能.

请参阅下面两个创建侦听端口3000的服务器的示例,

在节点中:

const http = require('http')

const requestHandler = (request, response) => {
    console.log(request.url)
    response.end('Hello Node.js Server!')
}

const server = http.createServer(requestHandler)

server.listen(3000,() => console.log("app started"));
Run Code Online (Sandbox Code Playgroud)

节点+表达

const express = require('express');
const app = express();

app.get('/', function (req, res) {
  res.send('Hello express !')
})    

app.listen(3000,() => console.log("app started"));
Run Code Online (Sandbox Code Playgroud)

两者都做同样的事情,但表达方式更容易.

  • 在开发时我们可以使用它,并假设你正在托管这个地方,比如在`heroku`中然后我们应该将行改为`app.listen(process.env.PORT || 3000,()=> console. log("app started"));`以便它可以使用分配给它的端口而不是3000. (2认同)