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

前端 er,什么时候,你想写一个 HTTP 服务器?

现在把代码写进 index.js ,再超简单的把它运行起来: $ node index.js 打开浏览器,输入 http://localhost:3000,就能看到网页显示的 hello world...你可以把它们看作两个袋子,一个袋子里装着请求相关的数据,一个袋子里装着响应相关的操作。 request 包含了详细的请求数据,也就是我们前端调接口传递过来的数据。...response 主要用于响应相关的设置和操作。什么是响应?就是我收到了客户端的请求,我可以设置状态码为 200 并返给前端数据;或者设置状态码为 500 并返给前端错误。...protocol: 'http:', host:'localhost:8888', pathname: '/start', query: 'foo=bar&hello=world' } 看到了吧,url 模块可以将一个完整的...') 发送 http 请求 http 模块除了接受客户端的请求,还可以作为客户端去发送请求。

92730

面向前端工程师的 Node.js 入门手册(一)

这里使用Nodejs自带的http模块创建一个http服务,你可以使用通过浏览器或者命令行来发起一个http请求,直观的感受服务端的JavaScript。...调用res.end返回一个字符串"hello world"给带客户端,旨在让你对Nodejs有一个直观的体验。...; }) 上例子中,先确定了一个数据模型data,内部一共有三个字段。这里的数据模型就是前端开发前与后端所定义的返回格式,最终前端要拿到这个JSON格式的数据在客户端进行处理。...代码逻辑相比于Hello World,规定了返回的数据格式,以及设定了返回请求的文本类型为application/json,然后调用res.end返回到客户端。 ?...可以继续使用浏览器发起http请求来查看结果,一个简单且熟悉的JSON数据接口已经完成了。你可以按照前端最常用的调用方式,如ajax或者axios来请求接口来在你的前端项目使用它。

1.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    面向前端工程师的Nodejs入门手册(一)

    这里使用Nodejs自带的http模块创建一个http服务,你可以使用通过浏览器或者命令行来发起一个http请求,直观的感受服务端的JavaScript。...,调用res.end返回一个字符串"hello world"给带客户端,旨在让你对Nodejs有一个直观的体验。...; }) 上例子中,先确定了一个数据模型data,内部一共有三个字段。这里的数据模型就是前端开发前与后端所定义的返回格式,最终前端要拿到这个JSON格式的数据在客户端进行处理。...代码逻辑相比于Hello World,规定了返回的数据格式,以及设定了返回请求的文本类型为application/json,然后调用res.end返回到客户端。 ?...可以继续使用浏览器发起http请求来查看结果,一个简单且熟悉的JSON数据接口已经完成了。你可以按照前端最常用的调用方式,如ajax或者axios来请求接口来在你的前端项目使用它。

    1.1K30

    使用Termux实现在安卓手机上写Hexo

    hexo - 语雀实现云端富文本写作 https://zfe.space/post/554e.html 通过将文章储存在云端,借助云函数触发 github action 自动部署文章。...该方案不受客户端限制,可以在 MAC、Win、Linux、Android、ios 等任何能够打开浏览器的系统上使用。...建议替换为清华源,复制以下指令执行: BASH 换源成功后,在 Termux 上安装 openssh,git 和 nodejs。此处推荐安装 nodejs 长期支持版本,避免不必要的 bug。...(此处分享我写的脚本,最好还是按照脚本内的注释在电脑上配置好各类路径再复制过去): BASH 脚本新建完成后,回到 Termux 终端,使用指令运行脚本打开菜单页面,按照菜单指示进行配置 sshkey...浏览器推荐使用 X浏览器,除了体量小的优点外,还支持按照油猴脚本,以及打开控制台。 觉得本帖操作难度有点大的请移步冰老师写的 ?

    2K20

    前后端分离及部署1

    (多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。...2、UI做出设计图 3、前端工程师做html页面 4、后端工程师将html页面套成jsp页面(前后端强依赖,后端必须要等前端的html做好才能套jsp。...2、如果你要玩轻量级微服务架构,要使用nodejs做网关,用nodejs的好处还有利于seo优化,因为nginx只是向浏览器返回页面静态资源,而国内的搜索引擎爬虫只会抓取静态数据,不会解析页面中的js,...同时因为nginx不会进行页面的组装渲染,需要把静态页面返回到浏览器,然后完成渲染工作,这加重了浏览器的渲染负担。...浏览器发起的请求经过nginx进行分发,URL请求统一分发到nodejs,在nodejs中进行页面组装渲染;API请求则直接发送到后端服务器,完成响应。

    24212

    Nodejs+socket.io搭建WebRTC信令服务器

    除此之外,WebRTC还需要房间服务器将多端聚集到一起管理,以及信令服务器进行信令数据交换(如媒体描述信息SDP的交换,连接地址的交抽换等),但在WebRTC的规范中没有对这部分内容进行规定,所以需要由用户自己处理...其中一个是服务端程序,控制 Nodejs 的行为,它由 Nodejs 的V8引擎解析处理;另一个是客户端程序,它是要由浏览器请求后,下发到浏览器,由浏览器中的 V8 引擎进行解析处理。...搭建信令服务器 接下来我们来看一下,如何通过 Nodejs下的 socket.io 来构建的一个服务器: 这是客户端代码,也就是在浏览器里执行的代码。index.html: <!...; 以上是客户端(也就是在浏览器)中执行的代码。...服务器具有此功能后,当客户端(浏览器)向服务端发起请求时,服务器通过该模块获得客户端(浏览器)运行的代码,也就是上我面我们讲到的 index.html 和 client.js 并下发给客户端(浏览器)。

    8.3K20

    Js模块化导入导出

    CommonJS CommonJS是NodeJs服务器端模块的规范,根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。...,因为exports只是一个指针并指向module.exports的内存区域,即exports = module.exports = {},重写exports则改变了指针指向将导致模块不能导出,简单来说...,CommonJS规范引入模块是同步加载的,这对服务端不是问题,因为其模块都存储在硬盘上,可以等待同步加载完成,但在浏览器中模块是通过网络加载的,若是同步阻塞等待模块加载完成,则可能会出现浏览器页面假死的情况..., AMD加载器是提前将所有依赖加载并调用执行后再执行回调函数),CMD是延迟执行(相对定义的回调函数, CMD加载器是将所有依赖加载后执行回调函数,当执行到需要依赖模块的时候再执行调用加载的依赖项并返回到回调函数中...),不过RequireJS从2.0开始,也改成可以延迟执行 AMD是依赖前置(在定义模块的时候就要声明其依赖的模块),CMD是依赖就近(只有在用到某个模块的时候再去require——按需加载,即用即返

    3K20

    关于前后端同构,我的一点思路和心得(vue、nodejs、react、模版)

    Web开发的历程是很有趣的,最初php、asp的年代,一切内容都是服务器渲染的; 再后来为了节省服务器资源,也更大限度利用客户端缓存,又出现了前后端分离的模式,从而有了专业的前端开发和后台开发。...大概2014年后,又出现了很多nodejs直出的方案,把页面数据都一次在HTML的请求中返回,无需浏览器端再发起ajax获取数据,而且服务器端把DOM结构都渲染好,浏览器按trunk直接做图形渲染即可。...这一种情况,也就是网上搜索到的各种文章的情况。 第二种,多页面纯数据展示,每一页都比较简单,没有分屏的必要。 如果项目是这样的情况,使用nodejs直出,无非就是提高打开速度。...唯一同构的就是art-template支持浏览器和nodejs。 情况怎么恶心呢?...我觉得这个又回到了第二种情况,只需要简单把一些库函数封装一下,做成前后端共用即可。 第四种情况,因为彻底抛弃了浏览器渲染,整个情况就简单多了,不需要考虑模版和很多逻辑js的前后端复用问题。

    1.7K40

    WebRTC | Web服务器原理、Nodejs工作原理、Nodejs事件处理流程、V8引擎等要点解析

    出于安全原因,像Chrome之类的浏览器是不允许直接调用本地的JS文件的; 所以只能把它放在Web服务器端, 通过Web服务器下载到本地,再运行这些程序; 后续很多WebRTC案例,包括信令服务器,...都是需要使用到Web服务器的; Web服务器选型 Nodejs 比较特殊,可以用js开发服务端程序; 有两份JS, 一份是用于控制服务器的, 一份是用于下载到客户端去运行的; Nginx 性能上比...简单页面的事件); 还有复杂一点的事件, 可能需要调用数据库、做一些查询工作、做数据统计, 最终展示页面, 这个时候会从线程池【Thread Pool】取出一个线程【Thread】, 执行对应的...一般情况下,在客户端发送请求之前, Nodejs的服务是要先运行起来的【running】, 服务端有自己的JS, 经过(服务端 的)V8解析、中间层LIBUV处理, 然后先运行起来了; 客户端发送一个...,操作磁盘,拿到对应JS文件, 然后Callback、Response返回给客户端【浏览器】; 浏览器【客户端】收到服务端的JS文件之后, 也将JS代码交给【(浏览器/客户端 自己的)V8】进行解析

    1.1K20

    企业级SAAS服务通过CDN方式实现前后端分离

    实际过程中,首先浏览器请求到PHP服务,由PHP进行页面路由,同时去验证请求、拉去菜单数据,获取一些登录等其他的一些业务数据,准备好页面需要的数据以后,post请求到Nodejs服务,post的通知需要知道对应...Nodejs的路由地址和环境地址及正确的数据格式才能正确的路由到对应的服务和目录,这里之前经常加一个业务到时候会要node服务和PHP修改一些约束内容,容易导致一些问题,这些问题对于新人排查起来是比较慢的...,之后Nodejs拿到正确的数据后读取模版通过渲染引擎渲染出直出的html,返回到php然后php再返回到浏览器端,同时浏览器端再请求CDN的js,css,img资源将前端页面渲染在浏览器端,同时一些业务异步请求业务数据呈现给浏览器端...当然以上上将Nodejs服务至于后台PHP服务之后,当然也可以将Nodejs服务至于前面如下,至于前部要求Nodejs复杂性更高些,对于2B的saas服务一般来说都是要求进行登录才可进行访问,所以Nodejs...当用户登录完成以后,将号码的环境以标识种到浏览器的cookie中,然后当跳转到页面的时候CDN拿到cookie标识请求到对应的模版资源和静态资源,用户不会从浏览器请求地址上感受到环境区分。

    1.4K20

    使用Node.js的简单Websocket示例

    本文翻译自Simple Websocket Example with Nodejs 使用Node.js的简单Websocket示例 今天的主题是带有nodejs的WebSocket示例。...jQuery AJAX还可以用于与服务器通信,这只是一种单向通信,只有客户端可以从服务器请求数据。 Websocket提供了服务器与客户端之间的双向通信。...WebSocket连接是浏览器(客户端应用)与服务器之间的持久连接。 服务器可以将消息发送到浏览器,浏览器可以通过相同的连接进行响应。...客户端应用程序必须具有连接Web套接字和建立连接的能力。我们将创建两个文件– server.js:此文件将创建将响应发送到客户端应用程序的服务器。...node client 将客户端成功连接到服务器后,服务器开始将消息发送到客户端应用程序。 运行结果如下如所示: 下面是我在自己的腾讯云主机上运行的结果截图: 客户端 ? 服务端 ?

    6.4K10

    深入剖析nodejs中间件

    nodejs的出现为前端行业带来了无限的可能性,让很多原来只负责客户端开发的同学也慢慢开始接触和使用服务器端技术.虽然nodejs带来了很多的好处,但是它也存在自身的局限性.和那些传统老牌的编程语言相比...nodejs中间层客户端集成nodejs,比如electron市面上一些不太复杂的应用选择nodejs作为后端编程语言本文主要讲一讲nodejs作为中间层的一些实践,查看下图.图片传统的的开发模式由浏览器直接和...Server层直接通信,中间层的加入意味着在浏览器和Server层之间额外添加了一层.原来客户端直接向Server发送请求,Server层收到请求后经过计算处理将结果返回给浏览器.如今浏览器将请求发送给...node层,node层经过一轮处理后再向Server层发起请求.Server层处理完毕将响应结果返回给node层,node层最后将数据返回给浏览器.因为node层的出现,Server层可以只用关注业务本身...,它可以向多台服务器发起请求获取到不同模块的数据再整合转化发送给前端.下面着重介绍一下nodejs作为中间层的部分实践.nodejs进阶视频讲解进入学习代理转发代理转发在实际中有很多广泛的应用.浏览器首先将请求发送给

    2.8K20

    怎么才能搭建一个自己的博客

    而对于需要独立运行的JS,NodeJS就是一个解析器。 每种解析器就是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情。...而另一方面,NodeJS让前端的开发人员(说你耶)如获神器,终于可以在自己的有生之年,让自己的能力范围内跳出浏览器窗口。...至此,你的github pages就发布成功了。试试在浏览器的地址栏输入”你github的用户名.github.io”吧! 现在回到你的 , ?...blog) hexo d 回车 (这是将本地blog部署到github的仓库) 现在,试试在浏览器的地址栏输入:“你的用户名.github.io”,此时,你应该会看到这样的界面: ?...然后回到cmd,执行: hexo g 回车 (这是重新生成blog) hexo d 回车 (这是将本地blog部署到github的仓库) 好了,试试在浏览器的地址栏输入:“你的github用户名.github.io

    1.4K30

    nodejs作为中间层的实践「详细介绍」

    nodejs的出现为前端行业带来了无限的可能性,让很多原来只负责客户端开发的同学也慢慢开始接触和使用服务器端技术....前端工程化,比如rollup,webpack在工程化方向的探索 nodejs中间层 客户端集成nodejs,比如electron 市面上一些不太复杂的应用选择nodejs作为后端编程语言,本文主要讲一讲...原来客户端直接向Server发送请求,Server层收到请求后经过计算处理将结果返回给浏览器....如今浏览器将请求发送给node层,node层经过一轮处理后再向Server层发起请求.Server层处理完毕将响应结果返回给node层,node层最后将数据返回给浏览器....,这个时候如果我们接了中间层nodejs的话,那么我们可以把首屏渲染的任务交给nodejs去做,次屏的渲染依然走之前的浏览器渲染。

    2K00

    听说这个爬虫面试题很难?看完你就知道怎么做了

    现在再回到抓包工具中仔细看看,是不是发现抓到的浏览器请求里这两个请求之间是有一堆图片的,且第二次请求时,请求头里的东西也没有啥变化? 是这样的,其实它的服务端对客户端是否加载了图片进行了判断。...等一等,现在你还不能运行这段代码,因为你没有 document, document 是浏览器中特有的一个全局变量,而NodeJS中是不存在document这东西的,是不是觉得事情有点麻烦了起来?...没关系,问题不大,既然NodeJS中没有,那我们就自己造一个! 这里使用jsdom库来模拟浏览器中的dom部分,从而做到在NodeJS中使用document的操作。...将JS代码再修改一下: ? 然后我们试一下能不能用,记得将这里的html字符串替换成你请求时返回的。...提示:这里的dict(list)是一个Python的语法糖,可以快速地将[[1,2],[3,4]]转成{1:2, 3:4} 提示:这里可能会出现一个问题,之前直接用NodeJS执行没问题的代码,经过PyExecJS

    82310

    nodejs多房间web聊天室

    源码下载:https://github.com/CreekLou/chatRoom Nodejs背景简介 1 ,JavaScript最早是运行在浏览器中,然而浏览器只是提供了一个上下文 2 ,node.js...事实上就是另外一种上下文,它允许在后端(脱离浏览器环境)运行JavaScript代码 3 ,Node.js事实上既是一个运行时环境,同时又是一个库 Nodejs架构如下图 Node.js 的异步机制是基于事件的...,所有的磁盘 I/O 、网络通信、数据库查询都以非阻塞,的方式请求,返回的结果由事件循环来处理 •事件驱动的回调(事件轮询) •异步IO避免了频繁的上下文切换 •在node中除了代码...CPU 难以充分利用 CPU 资源 内存轨迹大,数据局部性弱 符合线性的编程思维 异步式 I/O (非阻塞式): 单线程即可实现高吞吐量 通过功能划分利用多核CPU 可以将单进程绑定到单核...socket.emit() :向建立该连接的客户端广播 socket.broadcast.emit() :向除去建立该连接的客户端的所有客户端广播 io.sockets.emit() :向所有客户端广播

    1.6K40

    听说这个爬虫面试题很难?看完你就知道怎么做了

    现在再回到抓包工具中仔细看看,是不是发现抓到的浏览器请求里这两个请求之间是有一堆图片的,且第二次请求时,请求头里的东西也没有啥变化?...是这样的,其实它的服务端对客户端是否加载了图片进行了判断,如果客户端没有加载图片就直接开始取内容,那除了网速慢和刻意关闭了图片的人以外,基本就可以确定是爬虫了,所以这是一个简单粗暴的反爬措施。...没关系,问题不大,既然NodeJS中没有,那我们就自己造一个,这里使用jsdom库来模拟浏览器中的dom部分,从而做到在NodeJS中使用document的操作。...将JS代码再修改一下: ? 然后我们试一下能不能用,记得将这里的html字符串替换成你请求时返回的。...提示:这里的dict(list)是一个Python的语法糖,可以快速地将[[1,2],[3,4]]转成{1:2, 3:4} 提示:这里可能会出现一个问题,之前直接用NodeJS执行没问题的代码,经过PyExecJS

    92730
    领券