有人可以帮助我了解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
的示例
首先,我无法理解他们的示例,例如他们在哪里发出(路由)请求,以便他们收到响应?
其次,使用axios之类的库可以发出请求吗?
第三名,当我们发出api请求时,数据不是通过http / https传输的吗?
app.post("/", (req, res) => {
简而言之,有人可以用快递的方式使用http包用更人类的语言解释我吗?
更新:我可能会将此与Express混淆,我习惯于使用Express,而在这里我们不使用Express
答案 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 模块之上,使一切变得简单。
如果您需要更多说明,请告诉我,我会尽力向您解释。