繁体   English   中英

在“node.js”VS“express.js”中创建服务器

[英]create server in 'node.js' VS 'express.js'

大家好,我是 node.js 和 express.js 的新手

我在 node.js 和 express.js 上创建服务器时有点困惑。

在 Node.js 中,我们使用http 模块来创建服务器。

在 express 中,我们不使用任何 http 模块,但我们仍然能够创建服务器。 这里的服务器是如何创建的? app.get() 是在创建它吗?

我试图用谷歌搜索差异但无法得到正确的解释,请有人在这里帮助我或分享文档链接,以便我更好地理解它。

// creating server using Node.js

var http = require('http');
var fs = require('fs'); 

var htmlData;

fs.readFile('index.html',(err, data)=>{
  if(err) throw err;
    htmlData = data;
});

 
http.createServer(req, res) {
      res.writeHead(200, {'Content-Type': 'text/html'});
      res.write(htmlData); //read the file & write the data content
      res.end();
  }).listen(8000,()=>{console.log("PORT is 8000")}); 




// creating server using Express.js

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

let htmlData;

fs.readFile('index.html','utf-8',(err,data)=>{
    htmlData = data;
})

app.get('/',(req,resp)=>{
    resp.writeHead(200,{'content-type':'text/html'}).write(htmlData).end();
}).listen(8000);

express.js 建立在 Node.js 之上,并在后台使用 Node 的网络和 web 框架。

express.js 的结构是使用“中间件”,这些“中间件”是功能模块(基本上是功能),可以处理一些输入并更改状态/添加功能。

例如,有专门用于处理 Node.js 收到的 http 请求的中间件,然后再将它们传递给您的应用程序。

See https://expressjs.com/en/resources/middleware.html and http://expressjs.com/en/resources/middleware/body-parser.html

Express 只是 node js 的一个库。 它使用节点的http模块来创建服务器。 你调用app.use ,但是这个 function 做了很多事情,包括http.createServer 除了服务器,express 还使用中间件,扩展了另一个名为connect的库。 如果 express 文档中没有解释express的任何方法,请阅读connect文档。

如果您现在正在学习节点,请使用http ,因为 express 提供了太多功能并且代替您做了很多工作,无法完全理解正在发生的事情

app.listen 在 express 上创建服务器。 在 express 中,我们不必使用 app.createServer()。 我们可以直接使用 app.listen(3000)。 Express 让我们的生活更轻松。

Express Js 建立在 Node Js 之上,它被称为框架。 没有人真正在裸节点上构建服务器,就像没有人用裸节点构建网站一样,没有人使用裸节点 HTML、CSS 和 javascript。

Express Js 不是唯一的后端框架,但它是社区最强大的框架。 这意味着就 node js 而言,它拥有最多的用户、支持和包。 有一些替代品,例如 Nest Js、Koa js 和 Hapi Js。 我建议您至少查看一种替代方法,因为它可以让您更好地了解服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM