如果我可以只用 nodejs 本身做所有事情,我为啥要使用 Express? [关闭]

Posted

技术标签:

【中文标题】如果我可以只用 nodejs 本身做所有事情,我为啥要使用 Express? [关闭]【英文标题】:Why should i use Express if i can do everything with just nodejs itself? [closed]如果我可以只用 nodejs 本身做所有事情,我为什么要使用 Express? [关闭] 【发布时间】:2020-12-27 11:20:46 【问题描述】:

我不明白为什么我应该使用 expressjs,如果我可以用 node 做所有事情我的意思是有什么特殊的优势或者我不能没有 express 的东西

【问题讨论】:

虽然这可能会因为基于意见而被关闭,但我会提出一些考虑:当您可以使用 javascript 完成所有事情时,为什么还要使用 ReactJS?为什么要使用 Babel,它支持的所有东西都被转译为 ES5,所以理论上你可以手动编写它?这是一个实用性问题——该框架提供了实用性、简洁性、组织性和语法糖,没有它就无法使用。你可以在 Node.js 中用纯 JS 完成你想要的。但请记住,它可能需要更多的输入,并且其他开发人员不太容易维护。 【参考方案1】:

没有什么说您必须使用 Express。如果您想从头开始编写每一行代码而不使用任何以前构建的代码,那么您当然可以这样做。

关于您从 Express 中获得的各种好处的几个想法:

    借助 Express 的内置功能,您可以更快地完成许多事情(减少编写可靠、经过测试的代码的时间)。 您可以使用与 Express 兼容的大量中间件库,这将再次让您更快地完成任务。 其他人帮助处理您的代码的知名框架。您将不可避免地不得不自己构建某种内部框架,这样您就不会一遍又一遍地重复相同的代码。如果其他人需要处理你的代码,他们将不得不学习你的迷你框架和你做事的方式,而不是已经熟悉已经熟悉的 Express 做事方式。

为了给您一些已经编写和测试过的 Express 中间件或 Express 中的内置功能的示例,以下是一些示例:

Multer - 用于解析和处理 multipart/form-data 的中间件。 Body-Parser - Express 内置的中间件,用于解析多种格式的单个部分正文(如表单或 JSON 帖子)。 Cors handling Serving static files 自动。 A built-in view scheme 用于使用任意数量的模板引擎。 自动解析路由参数、查询参数、正则表达式路由匹配等...以便您可以使用参数定义路由。 Express-session - 用于服务器端会话处理(例如用户登录)的 Express 中间件。 Morgan - 用于记录 http 请求/响应的 Express 中间件。 Passport - 支持各种身份验证的身份验证中间件,例如 Google、Facebook、Twitter 等......以及各种自定义策略。

【讨论】:

【参考方案2】:

不,通过使用在 nodejs 中无法实现的 express 框架,您不会获得任何特殊优势。 但是由于 express 是一个框架,它可以在以下方面为您提供帮助

    维护应用的基本结构。 让您以更简单的方式编写路由、中间件等许多内容。 处理视图。 等等。

要体验它,只需尝试仅使用 nodejs 创建一个基本的 REST 应用程序,然后尝试使用 express 创建相同的应用程序,您会发现使用 express 编写应用程序将节省大量时间,而且代码更简洁,因为很多事情将由快递自己处理。

【讨论】:

以上是关于如果我可以只用 nodejs 本身做所有事情,我为啥要使用 Express? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS 单线程 如何保证其安全,稳定性?

获取目录nodejs中的所有目录

XHProf - 查看所有个人资料

Thread.sleep(x) 没有做它必须做的事情[重复]

如何只用5分钟完成数据 列表创建页面

是否可以在 URL 本身中传递 HTTP 标头?