http和https模块在Node中做什么?

时间:2018-12-27 14:37:33

标签: node.js express

有人可以帮助我了解Express中的http和https模块做什么吗?

我正在经历以下docs on w3schools

从定义上说

  

Node.js具有一个称为HTTP的内置模块,该模块允许Node.js进行   通过超文本传输​​协议(HTTP)传输数据。

通过以下示例

var http = require('http');

//create a server object:
http.createServer(function (req, res) {
  res.write('Hello World!'); //write a response to the client
  res.end(); //end the response
}).listen(8080); //the server object listens on port 8080

这是live demo

的示例

首先,我无法理解他们的示例,例如他们在哪里发出(路由)请求,以便他们收到响应?

其次,使用axios之类的库可以发出请求吗?

第三名,当我们发出api请求时,数据不是通过http / https传输的吗?

app.post("/", (req, res) =>  {

简而言之,有人可以用快递的方式使用http包用更人类的语言解释我吗?

更新:我可能会将此与Express混淆,我习惯于使用Express,而在这里我们不使用Express

1 个答案:

答案 0 :(得分:3)

1-他们没有定义任何路线。这段代码仅创建在端口8080上运行的服务器,当在本地路由(/)上创建或访问该服务器时,该服务器将返回“ Hello World”。如果要定义路由,则应仔细查看名为 express 的模块,该模块由于其简单性和文档说明(https://expressjs.com/en/starter/hello-world.html)被大多数节点用户使用,在该链接中,您拥有创建服务器和基本路由的示例

2-是的,可以并且应该是因为它们比nodeJs中的默认值好得多。看一下axios或superagent,如果要使用formdata发送图像或附件,最好使用superagent。

3-默认情况下,所有使用http或express创建的服务器都是http服务器(没有证书来加密数据,因此它们不安全)。如果您要使用https服务器,则可以购买证书或使用https://letsencrypt.org/这个模块,该模块可以生成1个月的免费SSL证书。

http模块具有多种功能,可用于创建服务器,发出http请求等。由您决定要使用软件包中的哪个子模块。 Express建立在 http 模块之上,使一切变得简单。

如果您需要更多说明,请告诉我,我会尽力向您解释。