nodejs学习

《nodejs开发指南》微博实例express4.x版

半腔热情 提交于 2020-01-17 04:34:43
转自:http://www.cnblogs.com/yuanzm/p/3770986.html 《nodejs开发指南》微博实例express4.x版   之前一直执着于前端开发,最近几天,开始学起了nodejs。作为一名前端开发者,见到这样一门用javascript写的后台自然是很激动的。但是,后台毕竟不同于前端,在学习的过程中,还是会遇到不少问题。   为了开始学习nodejs,一开始选择了《深入浅出nodejs》这本书,看了几章之后,得出一个结论是:真是一本好书,但是还是不会写nodejs!然后选择了另外一本教材《nodejs开发指南》,由于看过了《深入浅出nodejs》,直接跳过了这本书的前几章,写起了该书第五章的微博实例。作为一个新手,在写的过程中,才逐渐发现因为express版本升级的原因,书中的代码很多已经不能用了,这对于新手来讲,真是痛苦的经历!!本着分享和学习的精神,特此奉上《nodejs开发指南》微博实例express4.x版本源码和编写过程中需要注意的问题。   首先我们看看当前express的版本:   这和书本所用的express2.x版本已经有了很大的变化。对于express4版本的新特性,可以看看这个: http://scotch.io/bar-talk/expressjs-4-0-new-features-and-upgrading-from-3-0

浅谈前后端分离与实践 之 nodejs 中间层服务(二)

走远了吗. 提交于 2020-01-16 20:52:07
一、背景 书接上文, 浅谈前后端分离与实践(一) 我们用mock服务器搭建起来了自己的前端数据模拟服务,前后端开发过程中只需定义好接口规范,便可以相互进行各自的开发任务。联调的时候,按照之前定义的开发规范进行数据联调便可以了。前后端的职能更加清晰: 后端 前端 提供数据 接收数据,返回数据 处理业务逻辑 处理渲染逻辑 Server-side MVC架构 Client-side MV* 架构 代码跑在服务器上 代码跑在浏览器上 这里分离干净了,分工也很明确了,看似一切都那么美好,but...我们也很容易发现问题的所在: Client-side Model 是 Server-side Model 的加工 Client-side View 跟 Server-side是 不同层次的东西 Client-side的Controller 跟 Sever-side的Controller 各搞各的 Client-side的Route 但是 Server-side 可能没有 也就是说服务端和客户端各层职责重叠,大家各搞各的,很难统一具体要做的事情。并且可能会伴随着一些性能上的问题。最具体的表现就是我们常用的SPA应用: 渲染,取值都在客户端进行,有性能的问题 需要等待资源到齐才能进行,会有短暂白屏与闪动 在移动设备低速网路的体验奇差无比 渲染都在客户端,模版无法重用,SEO实现 麻烦 紧接着

nodejs类比Java中:JVM

痞子三分冷 提交于 2020-01-10 09:39:53
就前端来说nodejs具有划时代的意义, 做前端的没用过nodejs都不好意思说自己是前端, 做后端的没听过nodejs, 或者说不出nodejs和java的优缺点,也不是一个合格的后端。 nodejs不是一个js框架,千万不要认为是类似jquery的框架, nodejs是js运行时,运行环境,类比java中jvm, java的开端是什么,无疑是jvm,自从有了jvm,java才能吹牛说自己是“一次编写处处运行”, 不管你是windows还是linux,只要安装了对应版本的jvm都可以运行.class文件。 同样nodejs的作用和jvm的一样一样的,也是js的运行环境,不管是你是什么操作系统, 只要安装对应版本的nodejs,那你就可以用js来开发后台程序。 这具有划时代的意义,意味着一直以来只能在浏览器上玩来玩去的js,可以做后端开发了, 从有了nodejs后就催生出一大批用js做后台开发的前端人员,这部分人员就是偏前端的“全栈程序员”。 记住,nodejs是和jvm同等地位的js运行环境,打开了前端人员走向后端的道路。 【js mvc框架】 相关框架: 框架太多,详见下面两篇文章 私人定制,十款最佳Node.js MVC框架 基于NodeJS的14款Web框架 类比Java中的: ssh1(struts1+spring+hibernate),ssh2(struts2

搭建一个nodejs前端脚手架的方法步骤

有些话、适合烂在心里 提交于 2020-01-09 04:19:24
前言 像我们熟悉的 vue-cli,taro-cli 等脚手架,只需要输入简单的命令 taro init project ,即可快速帮我们生成一个初始项目。在日常开发中,有一个脚手架工具可以用来提高工作效率。 搭建前准备 第三方工具 commander.js ,可以自动的解析命令和参数,用于处理用户输入的命令。 download-git-repo ,下载并提取 git 仓库,用于下载项目模板。 Inquirer.js ,通用的命令行用户界面集合,用于和用户进行交互。 handlebars.js ,模板引擎,将用户提交的信息动态填充到文件中。 ora ,下载过程久的话,可以用于显示下载中的动画效果。 chalk ,可以给终端的字体加上颜色。 log-symbols ,可以在终端上显示出 √ 或 × 等的图标 开始 新建一个文件夹,然后npm init初始化 npm 不单单用来管理你的应用和网页的依赖,你还能用它来封装和分发新的 shell 命令。 这时在我们的 lq-cli 项目中有 package.json 文件,然后需要创建一个 JS 文件包含我们的脚本就取名 index.js 吧。 package.json 内容如下: { "name": "lq-shell", "version": "1.0.0", "description": "脚手架搭建", "main": "index

grunt学习(一)——nodejs入门

ぐ巨炮叔叔 提交于 2020-01-09 04:05:50
nodejs 入门 首先,去 http://nodejs.org 下载安装。我下的版本是 0.8.14 。安装很简单,下一步下一步就哦了。 我的安装目录是 C:\Program Files (x86)\nodejs 。这时使用 node -v 命令查看下安装的版本 一、 helloworld 在 nodejs 安装目录中新建一个文件 hello.js ,里面敲一行代码 ? 1 console.log('hello, nodejs.') ; 进入命令行控制台,进入到 nodejs 目录敲 node hello.js 控制台输出了 “ hello, nodejs. ” 二、 web 版的 helloworld 在 nodejs 安装目录中新建一个 http.js ,代码如下 ? 1 2 3 4 5 6 varhttp = require("http"); http.createServer(function(request, response) { response.writeHead(200, {"Content-Type":"text/html"}); response.write("Hello World!"); response.end(); }).listen(8000); 在命令行中启动服务,敲 node http.js 然后打开浏览器地址栏输入 http:/

NPM小结

妖精的绣舞 提交于 2020-01-08 21:46:41
参考一 Node入门 七天学会NodeJS Node.js v4.2.4 手册 & 文档 Node.js 教程 node.js摸石头系列 从零开始学习node.js What is npm? Node.js v4.4.7Documentation NodeJS NodeJS基础 JS是脚本语言,脚本语言都需要一个 解析器 才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要 独立运行 的JS,NodeJS就是一个解析器。 每一种解析器都是一个 运行环境, 不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情。例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了 document 之类的内置对象。而运行在NodeJS中的JS的 用途 是操作磁盘文件或搭建HTTP服务器,NodeJS就 相应 提供了 fs 、 http 等 内置对象 。 模块 编写稍大一点的程序时一般都会将代码模块化。 在NodeJS中,一般将代码合理拆分到不同的JS文件中,每一个文件 就是一个 模块,而 文件路径 就是模块名(文件名 就是 模块名)。 在编写每个模块时,都有 require 、 exports 、 module 三个 预先定义好的变量可供使用。 require require 函数用于在当前模块中加载和使用 别的 模块

第一章:node.js简述

烈酒焚心 提交于 2020-01-05 04:48:54
什么是nodejs nodejs从性能上来说是编写高性能网络服务器的JavaScript工具包。(翻译过来就是:用js开发服务端程序) 1、单线程、异步、事件驱动、 2、特点是:快。耗内存多。 3、异步消除内存测试: 网上一百万级并发测试,未优化的情况下消耗了16G内存。 如何理解nodejs执行速度快,但耗内存多的特点 PHP的知识点 PHP本身是不支持多线程的,是因为PHP的服务器Apache本身支持多线程。当Apache启动的时候,它先提供150个线程给PHP,假设在并发的条件下,打比方也就是同一时间突然有1万多个用户打开了浏览器访问这个网页的话,那么最多150用户先从线程池中取得这150个线程,这150个线程中有上传的线程,有下载的线程,在线程执行完任务后,将结果返回给客户时,才能放回线程池中,然后被其他用户使用。 这个过程是PHP的运行过程。 nodejs是单线程,那么它是如何运行的呢,它如果采用像以上PHP一样的单线程操作,操作起来会特点的慢,所以nodejs在这里采用了异步操作,大大的提供了工作的效率。那么nodejs是如何操作的呢。 首先nodejs中只有一个线程,假设有1万个用户并发访问,nodejs会采用异库操作,在第一个用户访问的时候,这个线程会为该用户访问在内存中开辟出一块小的内存让他进行上传下载。在第二个用户到来的时候,这个线程又会给他开辟一块小的内存

nodejs基础部分(一)

北城以北 提交于 2020-01-05 04:40:14
前言    业余时间充实自我,入手学习了解一下传说中纯事件驱动/非阻塞的js架构 --nodejs   好记性不如烂笔头,本系列随笔用于整理记录学习nodejs过程中的心得 目录 nodejs简介 nodejs安装 nodejs加载模块 1. nodejs简介   nodejs基于 Google开源js引擎V8 开发,从2009年诞生起就获得强烈关注,是一套用来编写高性能网络服务器的js工具包。简单的说 nodejs 就是运行在服务端的 JavaScript。   优势:   纯事件驱动,异步非阻塞。框架内部提供的大多api都是异步调用风格,无需等待某个操作完成   单线程。这里的单线程指主线程为单线程,所有的阻塞的全部放入一个线程池中,然后主线程通过队列的方式跟线程池来协作   易入手。基于js语言,js是开发者必备的一项技能,不用再单独新学一门陌生的语言,降低了学习的门槛   高效稳定。选择了目前最快的浏览器内核V8做为执行引擎,保证了Nodejs的性能和稳定性   弱势:   业务复杂程序。面对复杂业务,需要大量计算显然是没有后台代码给力   内存管控。js是一门弱类型语言,数据结构较为单一。对象都是基于json,无法使用内存管控   不需要异步的程序。对于nodejs的异步特性来说,不需要异步操作的程序可能会比较麻烦 2. nodejs安装  

nodejs之get/post请求的几种方式

£可爱£侵袭症+ 提交于 2020-01-02 01:38:58
最近一段时间在学习前端向服务器发送数据和请求数据,下面总结了一下向服务器发送请求用get和post的几种不同请求方式: 1.用form表单的方法: (1)get方法 前端代码: <form action = "/login" method = "GET"> <label for = "username">账号:</label> <input type = "text" name ="username" placeholder = "请输入账号" required> <br> <label for = "password">密码:</label> <input type = "password" name = "password" placeholder = "请输入密码" required> <br> <input type = "submit" value = "登陆"> </form> 服务器代码: 用get方法首先要配置json文件,在command中输入命令npm-init ,然后要安装所需要的express模块,还需要在文件夹里面创建一个放置静态资源的文件夹(wwwroot),然后代码如下: var express = require('express'); // 引入模块 var web = express(); // 使用模块创建一个web应用 web.use

PM2 nodejs 学习(一)

别等时光非礼了梦想. 提交于 2019-12-29 22:51:55
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> pm2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。它非常适合IaaS结构,但不要把它用于PaaS方案(随后将开发Paas的解决方案). 备注:SaaS、PaaS和IaaS是云服务模式。 SaaS 软件即服务,例如Google的 Gmail 邮箱服务.面向应用型用户. PaaS 平台即服务.例如Google的GAE,面向开发型用户 IaaS 基础架构即服务,例如亚马逊的AWS,IaaS对于不知道新推出的应用程序/网站会有多成功的创业公司来说非常有用 请参考 云服务模式:SaaS、PaaS和IaaS,哪一种适合你? 主要特性: 内建负载均衡(使用Node cluster 集群模块) 后台运行 0秒停机重载,我理解大概意思是维护升级的时候不需要停机. 具有Ubuntu和CentOS 的启动脚本 停止不稳定的进程(避免无限循环) 控制台检测 提供 HTTP API 远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 ) 测试过Nodejs v0.11 v0.10 v0.8版本,兼容CoffeeScript,基于Linux 和MacOS. 安装 npm install -g pm2