使用Node.js进行Web开发(一)

  本文介绍Express框架、MVC设计模式、ejs魔板引擎以及MongoDB数据库的操作。

  首先要知道Node.js实现网站的工作原理是实现动态网页,也就是说由服务器动态生成HTML页面。

  MVC(Model-View-Controller,模型-试图-控制器)是一种软件的设计模式,即把一个复杂的软件工程分解为三个层面:模型、试图、控制器。

  • 模型是对象及其数据结构的实现,通常包含数据库操作。
  • 试图表示用户界面,在网站中通常就是HTML的组织结构。
  • 控制器用于处理用户请求和数据流、复杂模型,将输出传递给试图。

  传统的架构中HTTP服务器的角色会由Apache、Ngnix、IIS之类的软件来担任,而Node.js不需要。Node.js提供了http模块,它是由C++实现的,性能可靠,可以直接应用到生产环境。

1.1 使用http模块

  Node.js由于不需要另外的HTTP服务器,因此减少了一层抽象,给性能带来不少提升,但同时也因此而提高了开发难度。举例来说,我们要实现一个POST数据的表单,例如:

<form method="post" action="http://localhost:3000/">
    <input type="text" name="title"/>
    <textarea name="text"></textarea>
    <input type="submit"/>
</form>

表单包含两个字段:title和text,提交时以POST方式将请求发送给http://localhost:3000/。假设我们要实现的功能是将这两个字段的东西原封不动地返回给用户。

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);

实际上,Node.js虽然提供了http模块,却不是让你直接用这个模块进行Web开发的,我们需要借助框架来完成开发,比如Express框架。

1.2 Express框架

Express是目前最稳定、使用最广泛,而且Node.js官方推荐的唯一一个Web开发框架。Express除了为http模块提供了更高层的接口外,还实现了许多功能,包括:

  • 路由控制
  • 魔板解析支持
  • 动态视图
  • 用户会话
  • CSRF保护
  • 静态文件服务
  • 错误控制器
  • 访问日志
  • 缓存
  • 插件支持

  Express不是一个无所不包的全能框架,像Rails或Django那样实现了模板引擎甚至ORM(Object Relation Model,对象关系模型)。它只是一个轻量级的Web框架,多数功能只是对HTTP协议中常用操作的封装,更多的功能需要插件或者整合其他模块来完成。

  下面用Express重新实现前面的例子:

var express = require(‘express‘);
var app = express.createServer();
app.use(express.bodyparser());
app.all(‘/‘, function (req, res) {
    res.send(req.body.title + req.body.text);
});
app.listen(3000);
时间: 2024-08-07 00:15:50

使用Node.js进行Web开发(一)的相关文章

快速使用node.js进行web开发

首先关于node.js的学习,这里推荐一本比较好的教程,nodejs web开发指南,该书通俗易懂地将node.js语言特性讲解完之后,又从一个项目角度带领读者使用node.js学习web开发.相信这是一个比较好的学习模式和过程.由于这本书是2012年出的,书中的一个web教学项目是开发一个微博.从2012到现在,node.js及其生态环境发生了很大改变,所以关于该书的学习如果照着书本显然是过于陈旧的.到目前为止,node.js的web开发框架已经升级到了Express4.12.1,对于Mong

使用Node.js进行Web开发(二)

2.1 安装Express 如果一个包是某个工程的依赖,那我们需要在工程的目录下使用本地模式安装这个包,如果要通过命令行调用这个包中的命令,则需要用全局模式安装.Express提供了命令行快速构建项目的工具,所以我们使用全局安装: $ npm install -g express 2.2 建立工程 Express在初始化一个项目的时候需要指定模板引擎,通过以下命令建立项目基本结构: express demo 当前目录下出现了子目录demo,并产生一些文件. NodeJS的默认模板是jade,过于

使用node.js进行web开发

1.安装express npm install -g express-generator 4.0+版本中将命令工具分出来了,所以可以不安装express,但必须要安装express-generator 2.新建工程 初始化一个 express 项目并安装所需模块,模板引擎默认格式是jade express   文件夹名 要建ejs格式,需要加上-e cd 文件夹名 && npm install 新建服务器 node bin/www 或 supervisor bin/www app.js:启

Node.js 没有Web容器

Node.js 特点 1.单线程 在Java.PHP或者.net等服务器端语言中,会为每一个客户端连接创建一个新的线程.而每个线程需要耗费大约2MB内存.也就是说,理论上,一个8GB内存的服务器可以同时连接的最大用户数为4000个左右.要让Web应用程序支持更多的用户,就需要增加服务器的数量,而Web应用程序的硬件成本当然就上升了. Node.js不为每个客户连接创建一个新的线程,而仅仅使用一个线程.当有用户连接了,就触发一个内部事件,通过非阻塞I/O.事件驱动机制,让Node.js程序宏观上也

Node.js 的Web 服务器--Fenix

Fenix 是提供给开发人员使用的简单的一个 Web 服务器, 是基于 Node.js 开发.可以同时在上面运行很多的项目, 最适合前端开发人员使用. 可以通过免费的 Node.js 控制台创建,停止,启动和共享 Fexix 服务器. 您可以通过把你的桌面变成一个公共的 Web 服务器,让大家能看到你的web服务. Fenix官方 Node.js 的Web 服务器--Fenix

Express 4.x Node.js的Web框架

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3821150.html 本文使用node.js v0.10.28 + express 4.2.0 1 Express概述 Express 是一个简洁而灵活的node.js的MVC Web应用框架,提供一系列强大特性创建各种Web应用. Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了We

Redux+React Router+Node.js全栈开发

详情请交流  QQ  709639943 01.Java深入微服务原理改造房产销售平台 02.跨平台混编框架 MUI 仿豆瓣电影 APP 03.Node.js入门到企业Web开发中的应用 04.Redux+React Router+Node.js全栈开发 05.Java秒杀系统方案优化 高性能高并发实战 06.企业级刚需Nginx入门,全面掌握Nginx配置+快速搭建高可用架构 07.快速上手Linux 玩转典型应用 08.全面系统讲解CSS 工作应用+面试一步搞定 09.Java Spring

node.js 11 Web框架Express 介绍,安装,静态页面,路由

本文参考原文-http://bjbsair.com/2020-03-22/tech-info/2815/前面介绍了node.js的文件模块,http server以及静态网站的创建.有了这些知识作为基础,我们可以了解一下node.js的Web框架了. 从Java一路过来的朋友可能觉得Web框架还是比较重量级的,比如最初的Struts到后来的Spring,中间Apache组织也有过一些其他的模板框架,总体而言无论是从使用还是学习来讲,都是需要花费较多时间的.对于大型应用而言,这个投入是值得的.如果

基于Node.js的web聊天系统 - 真正意义上的web实时聊天系统

简单介绍一下这个实时web聊天系统的功能,首先进入系统的人填入名字和邮件地址后会获取到一个由系统创建的URL地址,你可以把这个地址发给另外一个人,另外一个人进入系统后就可以和你进行实时的聊天对话咯.主要用到了Node.js和socket.io 两个库,另外还用到了的库有express,  gravatar, ejs, 具体细节查看package.json,需要的这些库如果本地没有的话运行会报错的,需要使用npm install 安装.大家可以下载demo源代码进行运行测试. 源代码下载后解压有如