首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Nodejs/Express -为什么http.createServer( app )中需要app?

在Node.js中,Express是一个流行的Web应用程序框架,它简化了基于Node.js构建Web应用程序的过程。在Express中,我们使用http.createServer(app)来创建一个HTTP服务器实例,其中app是一个Express应用程序。

为什么在http.createServer(app)中需要app

  1. Express应用程序是一个回调函数的集合,用于处理HTTP请求和响应。通过将app作为参数传递给http.createServer(),我们将Express应用程序作为回调函数传递给HTTP服务器,使得服务器能够调用该回调函数来处理传入的HTTP请求。
  2. app包含了路由、中间件和其他处理程序,用于处理不同的HTTP请求。在Express中,我们可以使用app.get()app.post()等方法定义不同的路由,以及使用app.use()方法添加中间件。通过将app传递给http.createServer(),我们将这些路由和中间件与HTTP服务器关联起来,使得服务器能够根据请求的URL路径和HTTP方法来调用相应的处理程序。
  3. Express应用程序可以通过app.listen()方法启动一个HTTP服务器,但是在某些情况下,我们可能需要更多的控制权,例如在同一个应用程序中同时启动多个HTTP服务器。通过使用http.createServer(app),我们可以创建一个HTTP服务器实例,并在需要时手动调用其listen()方法来启动服务器。

总结起来,http.createServer(app)中需要app参数是为了将Express应用程序与HTTP服务器关联起来,使得服务器能够调用应用程序中定义的路由、中间件和其他处理程序来处理传入的HTTP请求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

express框架app.use和app.all的区别

在使用express框架时,在app.js中经常会发现app.use和app.all的身影,下面我们来看一下这两者期间有什么共同点和不同点。...先来看一段代码示例: const express = require('express'); const app = express(); app.use('/a',function(req,res,...'); app.use(compression()); 如果我们想对以某个字符串开头的路径做处理,我们可以按下面的方式写,以session为例: const session = require("express-session...") app.use("/hehe",session({ name: 'sessionID',//存储在用户cookie的key名 secret: 'secret', // 用来对session...app.all其实是和app.get和app.post类似,它是app.get和app.post等的一个统一函数,可以接收任何的请求,路径匹配的是完整路径,如果要匹配以某个字符串开头,则后面添加* 即可

1.7K20

expressapp.use和app.get的区别及解析

写在前面:最近研究nodejs及其web框架express,对app.use和app.get没理解清,以致踩了坑浪费不少时间,我根据自己实践及总结出此博客,若有错误还请大家多多指教。...结论 先说我发现的结论: app.use(path,callback)的callback既可以是router对象又可以是函数 app.get(path,callback)的callback只能是函数...结论说完,让我们先看个栗子 例子 app.js var express = require('express');var app = express();var index = require('....即 var express = require('express');var app = express();app.get('/hello',function(req,res,next){ res.send...路由规则是app.use(path,router)定义的,router代表一个由express.Router()创建的对象,在路由对象可定义多个路由规则。

1.4K60

Node.js起步 -- (1)

先来简单介绍nodeJS   我们知道JavaScript是运行在浏览器的,浏览器为它提供了一个上下文(context),从而让JavaScript得以解析执行。...在安装路径下(比如我是E:\Program Files\nodejs)新建一个main.js 文件,输入 var http = require('http');   http.createServer(...然后http现在这个对象模块有一个方法是,http.createServer(),这个方法创建一个服务之后再监听一个地址:http.createServer().listen(port,ip) 从而搭建了一个服务器...旧版本的node需要自个去下载安装,不过新版本的已经集成了。所以直接在这里输入npm -v 查看它的版本吧~ ?...在NodeJS,一般将代码合理拆分到不同的JS文件,每一个文件就是一个模块,而文件路径就是模块名。

2.7K20

express4.0源码解析

就是每一个nodejs教程里面开始nodejs教学的事例,nodejs启动服务器:http.createSever 的回调函数。appexpress贯穿整个流程的函数。...var app = express(); 这就是为什么引入express,都要开始执行一下这个函数。 2....好了,讲到启动服务器,app是没有启动服务器的能力的,这个能力是在application 这个文件中被mix进去的,其实就是mix一个http.createServer方法,但是这里还是要看一下代码。...app.listen = function(){ var server = http.createServer(this); return server.listen.apply(server,...前面我们已经知道app本身是做为回调参数传进http.createServer里面的,应用所有的路由都会掉进这个函数里面去,经过一个一个中间件进行处理。

70920

如何将 Web 框架迁移到 Serverless

日常生活,接触最多的就是基于 HTTP 协议的服务,客户端发起请求,服务端接受请求,进行计算处理,然后返回响应,简单示意图如下: ?...我们知道 Faas (云函数)是基于事件触发的,也就是云函数被触发运行时,接收到的是一个 JSON 结构体,它跟传统 Web 请求时有区别的,这就是为什么需要额外的改造工作。...express-framework 由此可知,我们可以将 Express 框架生成的回调函数,作为 http.createServer() 的参数,来创建可控的 HTTP Server,然后将云函数的...关于 Node.js 如何实现 IPC 通信,这里就不详细介绍的,感兴趣的小伙伴可以深入研究下,这里有个简单的示例,nodejs-ipc 一、代码实现 原理大概介绍清楚了,我们的核心实现代码需要以下三步...它使用起来很简单,创建我们的 Express 应用入口文件 sls.js: const express = require("express"); const app = express(); //

1.2K51

Express中间件的使用、原理及实现

现在在一些企业里用nodejs做服务端开发已经很普遍了,这里面最火的框架当然要数express了,expressnodejs原生的支持的http模块进行了简单封装,使开发者使用起来得心应手。...仔细看一下这两份代码的区别,第二份明显简洁了好多,将计算访问量的代码放到中间件,不需要再在各个路由中分写再去写了,提高了复用性,逻辑表达更清晰,易于维护,以上便是express中间件的使用了,这里需要注意的是...(middlewareA); app.use(middlewareB); app.use(middlewareC); http.createServer(app).listen('3000', function...简单来说,有如下几点: express函数调用返回一个app实例 在express函数内部定义一个数组来存储中间件函数 在express函数内部定义一个app函数 在app函数的内部定义一个变量i保存执行的中间件的位置...在app函数定义一个next方法,这个方法通过i值自增调用中间件 在app函数内部调用next 在app函数上定义一个use方法,这个方法可以将中间件函数push进中间件数组

3.2K51

nodejs基础和核心api

如何学习: 看官方资料 看github代码 笔记不要用笔 最好就是思维导图 nodeJs常常放在前面说的套话 nodejs是一个异步的事件驱动的进行时(runtime)。...创建一个app.js console.log('hello word') node app.js即可运行。 以往有个很不好的体验就是,每次修改都需要重启node服务。...以上操作在前端工程化的实践已经多次用到,所以没什么难的。 文件系统(fs,File System) nodejs为操作文件提供了大量的api,它使用的是fs模块。...首先看下使用方法: npm install express --save const express = require('express') const app = express() app.get...server=(callback)=>{ return http.createServer(callback); } // 简化版express class Dexpress{ constructor

98430

系统设计与分析 作业3

比较需要花心思的是问题的设置,在设置某两道题的选项时,花费了较多心思。 最后,分析调查结果,写成文档,发布到项目的github上 github 调研报告 2....后台开发学习 2.1 nodejs express使用https 微信小程序的访问要求必须是Https协议,所以我们可以使用nodejsexpress框架 参考 nodejs express使用https...主要过程是设置认证,监听SSL端口,并设置路由响应 var app = require('express')(); var fs = require('fs'); var http = require...path/to/file.crt', 'utf8'); var credentials = {key: privateKey, cert: certificate}; var httpServer = http.createServer...(app); var httpsServer = https.createServer(credentials, app); // https启动服务器 var PORT = 18080; var SSLPORT

49430

nodejs 中间件实现原理浅析

/app.js", debug 基于vscode 调试工具进行开发提效 正式开发 构建一个nodejs的http服务 const http = require('http') const port =...= new Middleware() // 启动监听 app.listen(port) 常见的express和koa都是采用类似的方式实例化的可以查看下面的代码示例,不仅仅是应该开源团队成员的原因,实际上本身...const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) =...从模型本身来看我们需要一个有序数组,我们还需要控制流程。实现原理还是用了一个简单的递归去控制流程,加上next函数的执行,实现了请求由外入内,再又内到外。...: 'wuwenzhou' })) }) // 启动监听 app.listen(port) todo 这仅仅是一个最简单的实现,帮助大家了解一下一个node服务的创建,路由的实现,中间件控制,核心的很多场景都是没有实现的例如异步的支持

89230

为什么说在云服务,移动APP开发者更需要PaaS而不是IaaS

而一旦有了服务器,上面的服务器程序搭建才一直是困扰移动APP(或PC网站)项目最大的痛点。并且这个过程存在很大的不确定性。...APP,某个PaaS云服务商的某个牛x程序员的成果可以被成百上千家没有那么高超开发能力的移动APP项目团队所共享。...拿一个电商APP来举例,需要的功能大概涉及以下逻辑:用户模块(注册、登陆)、商品展示模块(商品信息、图片资源存储)、搜索(语音搜索、图片识别)、购买系统(支付)、广告系统(闪屏广告、banner广告)、...而在PaaS服务普及之前,这一些都需要你有牛x的程序员,耗费大量时间精力,每一项都要自己手动写代码,但是也未必能够完成。...而如今,云端时代,这一切都变得异常简单,每一项都有非常专业的云服务商帮助你实现梦想,而作为移动APP项目技术实现本身,只需要更关注自身的业务逻辑、用户体验、市场运营,技术的一切都交给更专业的PaaS平台

1.4K60
领券