问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

web开发为什么选择nodejs

发布网友 发布时间:2022-04-21 09:52

我来回答

2个回答

懂视网 时间:2022-05-14 20:19

这篇文章让我们了解nodejs对web开发的过程,你想知道的都在这里,由服务器动态生成html页面。下面就让我们来看这篇文章吧。

一 ,Node.js 和 PHP、 Perl、ASP、JSP 目的都是实现动动态网页,也就是说由服务器动动态生成 HTML 页面。 之所以要这么做,是因为静态 HTML 的可扩展性非常有限,无法与用户有效交互。(教程推荐:node.js中文参考手册)

软件工程分解为 个层面:模型 、视图和控制器。

  1. 模型是对象及其数据结构的实现,通常包含数据库操作。

  2. 视图表示用户界面,在网站中通常就是 HTML 的组织结构。

  3. 控制器用于处理用户请求和数据流、复杂模型 ,将输出传递给视图。

准备工作

1、使用 http 模块

post请求:

var http = require('http');
var querystring = require('querystring');
var server = http.createServer(function(req, res) {
var post = '';
req.on('data', function(chunk) { post += chunk;
});
req.on('end', function() {
post = querystring.parse(post);
 res.write(post.title);
 res.write(post.text);
 res.end();
}); }).listen(3000);

tuyi.png

所以相比php,要用nodejs用http模块直接开发网站,必须手动实现所有东西了,想学习node.js的同学可以前往PHP中文网 node.js视频教程栏目

二、Express框架

nodejs推荐的唯一一个web开发框架

除了为http模块提供了更高层的接口外,还实现了许多功能,包括:

  • - 路由控制

  • - 模模解析支持

  • - 动态视图

  • - 用户会话

  • - CSRF保护

  • - 静态文件服务

  • - 错误控制器

  • - 访问日志

  • - 缓存

  • - 插件支持

  • 快速开始

    1.安装Express

    $ npm install -g express

    2.建立工程

    $ express -t ejs microblog
    $ cd microblog && npm install

    3.启动服务器

    $ node app.js

    三、路由控制

    1.工作原理

  • 访问http://localhost:12138 浏览器会向服务器发送请求

  • app解析请求的路径,调用相应的逻辑

  • app.js中有一行内容是app.get(‘/’, routes.index),它的作用是规定路径为/的GET请求由routes.index函数处理

  • routes.index通过res.render(‘index’,{title: ‘Express’})调用视图模板index,传递 title 变量

  • 最终视图模板生成HTML页面, 返回给浏览器

  • 浏览器在接收到内容以后,经过分析发现要获取 /stylesheets/style.css,因此会再次 服 务器发 请求。

  • app.js中并没有一个路由规则指 到/stylesheets/style.css,但app通过app.use(express.static(__dirname + ‘/public’))配置了静态文件服务器,因此/stylesheets/style.css会定向到app.js所在目录的子目录中的文件public/stylesheets/style.css, 向客户端返回样式内容

  • tuer.png

    2.创建路由规则

    打开 app.js,在已有的路由规则 app.get(‘/’, routes.index) 后面添加一行

    app.get(‘/hello’, routes.hello);
    改 routes/index.js, 加 hello 函数:
     exports.index = function(req, res) {
     res.render('index', { title: 'Express' });
    };
    exports.hello = function(req, res) {
     res.send('The time is ' + new Date().toString());
    };

    REST 风格的路由规则

    四、模版引擎

    1、什么是模板引擎

    模板引擎(Template Engine)是一个从页面模板根据一定的规则生成 HTML 的工具

    模板引擎的功能是将页面模板和要显示的数据结合起来生成 HTML 页面。

    它 可以运行在服务器端 可以运行在 客户端

    主流的还是由服务器运行模板引擎

    在MVC架构中,模板引擎包含在服务器端,控制器得到用户请求后,从模型获取数据调用模板引擎.

    模板引擎以数据和 页面模板为输入,生成html页面,然后返回给控制器

    由控制器交回给客户端

    模板引擎在mvc中的位置:

    tuyi.png

    2、使用模板引擎 ejs

    ejs标签系统非常简单,3中标签:

    1. - <% code %>: js 代码

    2. - <%= code %>: 显示替换过的html特殊字符的内容

    3. - <%- code %>: 显示原始html内容

    热心网友 时间:2022-05-14 17:27

    太长的不知道你会不会看完:
    Node.js其实有很多大公司都在用的,比如eBay, Microsoft, 你可以去Node.js官网看看:node.js要想知道更详细的列表,可以看这里:https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node
    再稍微花点时间,搜集一些网上资料:优势和劣势。

    讲清楚这个问题,先讲讲整个Web应用程序架构(包括流量、处理器速度和内存速度)中的瓶颈。瓶颈在于服务器能够处理的并发连接的最大数量。
    Node.js解决这个问题的方法是:更改连接到服务器的方式。每个连接发射一个在Node.js引擎的进程中运行的事件,而不是为每个连接生成一个新的
    OS线程(并为其分配一些配套内存)。Node.js不会死锁,因为它根本不允许使用锁,它不会直接阻塞 I/O
    调用。Node.js还宣称,运行它的服务器能支持数万个并发连接。

    Node本身运行V8 JavaScript。V8
    JavaScript引擎是Google用于其Chrome浏览器的底层JavaScript引擎。Google使用V8创建了一个用C++编写的超快解
    释器,该解释器拥有另一个独特特征:您可以下载该引擎并将其嵌入任何应用程序。V8
    JavaScript引擎并不仅限于在一个浏览器中运行。因此,Node.js实际上会使用Google编写的V8
    JavaScript引擎,并将其重建为可在服务器上使用。

    Node.js优点:
    1、采用事件驱动、异步编程,为网络服务而设计。其实Javascript的匿名函数和闭包特性非常适合事件驱动、异步编程。而且JavaScript也简单易学,很多前端设计人员可以很快上手做后端设计。
    2、
    Node.js非阻塞模式的IO处理给Node.js带来在相对低系统资源耗用下的高性能与出众的负载能力,非常适合用作依赖其它IO资源的中间层服务。
    3、Node.js轻量高效,可以认为是数据密集型分布式部署环境下的实时应用系统的完美解决方案。Node非常适合如下情况:在响应客户端之前,您预计
    可能有很高的流量,但所需的服务器端逻辑和处理不一定很多。

    Node.js缺点:
    1、可靠性低
    2、单进程,单线程,只支持单核CPU,不能充分的利用多核CPU服务器。一旦这个进程崩掉,那么整个web服务就崩掉了。

    不过以上缺点可以可以通过代码的健壮性来弥补。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    为什么一些男性喜欢要求伴侣叫自己爸爸? proteus8中怎么放置引脚标号 ...在proteus里不知道用什么表示?有没有什么proteus中专门的中英文对照... 甜蜜家园郑毅铭是什么身份 甜蜜家园第二季郑毅铭喜欢谁 瑞梦喜智能空调床垫适合人群 小孩可以用智能床垫吗 智能床垫适合哪些人用 我父亲今年59岁,有高血压和颈椎病的病史,最近一段时间感觉一躺下就偏... ...刚从医院治疗回来。我想买个枕头给他,不知买怎样的比较好?_百度知 ... 有什么正规的外汇平台吗 如何发布nodejs的web应用 如何用命令行开启nodejs搭建web服务器? 如何用nodejs搭建web服务器 ViVO手机照相机不见了,整么找出来? 有没有什么学广东话的软件? 儿歌有哪些啊,求推荐。 明快的少年儿童歌曲有哪些!急啊! 童谣大全 少儿歌《生长吧》歌词 2020最火儿童歌曲 好听的少儿歌曲 100首必听经典儿歌歌名 vivo手机摄像机在哪里 vivo手机摄像头设置在哪里 404 Not Found 青岛枣山中学是重点吗 青岛管墨人工智能有限公司怎么样? 青岛职业技术学院2020年报考政策解读 青岛斯达克人工智能有限公司怎么样? .尝试分析青岛无人码头使用了哪些人工智能? 如何让 nodejs web服务器 如何在nodejs中通过web访问数据库 如何用用命令行开启nodejs搭建web服务器 nodejs搭建web服务器后怎么发布网页 如何用websocket+nodejs实现web即时通信服务端 如何用树莓派+nodejs搭建web服务器? nodejs web怎样调用hadoop的文件路径 如何使用nodejs http API模拟web form表单提交 node.js和java做后台的web程序怎么共存 oppo A83忘了密码怎么进行线刷 OPPOA83刷机视频 vivo手机miui相机在哪 vivo手机实况照片怎样选图 vivos10拍照有实况吗 powerpoint怎么修改配色方案 PPT怎么使用取色器更改配色方案 PPT配色方案在哪编辑 詟汰袀璐圭殑浜у搧锛堥檺链&#xFFFD;湀鍐呬娇鐢&#xFFFD;紝涓岖疮璁¤呖涓嬫湀锛夛细镇ㄧ殑绁炲窞琛屽ぇ浼楀崱2013鐗... ppt中选择了主题以后配色方案不可更改对错? 自定义幻灯片的配色方案,可以实现?