返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:

  • 正版 MongoDB+Express+Angular+Node.js全栈开发实战派 柳伟卫 电
  • 新华书店旗下自营,正版全新
    • 作者: 柳伟卫著 | 柳伟卫编 | 柳伟卫译 | 柳伟卫绘
    • 出版社: 电子工业出版社
    • 出版时间:2019-06-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    美阅书店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 柳伟卫著| 柳伟卫编| 柳伟卫译| 柳伟卫绘
    • 出版社:电子工业出版社
    • 出版时间:2019-06-01
    • 版次:null
    • 字数:552000
    • 页数:368
    • 开本:16开
    • ISBN:9787121379932
    • 版权提供:电子工业出版社
    • 作者:柳伟卫
    • 著:柳伟卫
    • 装帧:平装
    • 印次:暂无
    • 定价:109.00
    • ISBN:9787121379932
    • 出版社:电子工业出版社
    • 开本:16开
    • 印刷时间:暂无
    • 语种:中文
    • 出版时间:2019-06-01
    • 页数:368
    • 外部编号:9788819
    • 版次:null
    • 成品尺寸:暂无

    篇初识MEAN

    章MEAN架构概述2

    1.1MEAN架构核心技术栈的组成2

    1.1.1MongoDB2

    1.1.2Express3

    1.1.3Angular3

    1.1.4Node.js3

    1.2MEAN架构周边技术栈的组成4

    1.2.1NG-ZORRO4

    1.2.2ngx-Markdown4

    1.2.3NGINX5

    1.2.4basic-auth5

    1.3MEAN架构的优势5

    1.4开发工具的选择8

    第2篇Node.js――全栈开发平台

    第2章Node.js基础10

    2.1Node.js简介10

    2.1.1Node.js简史10

    2.1.2为什么叫Node.js12

    2.2Node.js的特点13

    2.3安装Node.js17

    2.3.1安装Node.js和NPM17

    2.3.2Node.js与NPM的关系17

    2.3.3安装NPM镜像18

    2.4个Node.js应用18

    2.4.1【实例1】创建Node.js应用18

    2.4.2【实例2】运行Node.js应用18

    2.4.3总结19

    第3章Node.js模块――大型项目管理之道20

    3.1理解模块化机制20

    3.1.1理解CommonJS规范20

    3.1.2理解ES6模块22

    3.1.3CommonJS和ES6模块的异同点24

    3.1.4Node.js的模块实现25

    3.2使用NPM管理模块26

    3.2.1用npm命令安装模块27

    3.2.2全局安装与本地安装27

    3.2.3查看安装信息28

    3.2.4卸载模块28

    3.2.5更新模块29

    3.2.6搜索模块29

    3.2.7创建模块29

    3.3Node.js的核心模块29

    第4章Node.js测试31

    4.1严格模式和遗留模式31

    4.2【实例3】断言的使用32

    4.3了解AssertionError33

    4.4【实例4】使用deepStrictEqual34

    第5章Node.js缓冲区――高性能I/O处理的秘诀38

    5.1了解Buffer类38

    5.1.1TypedArray对象39

    5.1.2Buffer类39

    5.2创建缓冲区40

    5.2.1初始化缓冲区的API41

    5.2.2理解数据的安全性41

    5.2.3启用零填充42

    5.2.4指定字符编码43

    5.3切分缓冲区43

    5.4链接缓冲区45

    5.5比较缓冲区46

    5.6缓冲区编/解码46

    5.6.1解码器和编码器47

    5.6.2缓冲区解码47

    5.6.3缓冲区编码48

    第6章Node.js事件处理50

    6.1理解事件和回调50

    6.1.1事件循环51

    6.1.2事件驱动51

    6.2事件发射器52

    6.2.1将参数传给监听器52

    6.2.2异步与同步53

    6.2.3仅处理事件一次53

    6.3事件类型54

    6.3.1事件类型的定义54

    6.3.2内置的事件类型55

    6.3.3error事件55

    6.4事件的操作57

    6.4.1【实例5】设置优选监听器58

    6.4.2【实例6】获取已注册事件的名称58

    6.4.3【实例7】获取监听器数组的副本59

    6.4.4【实例8】将事件监听器添加到监听器数组的开头59

    6.4.5【实例9】移除监听器60

    第7章Node.js文件处理63

    7.1了解fs模块63

    7.1.1同步与异步操作文件63

    7.1.2文件描述符65

    7.2处理文件路径66

    7.2.1字符串形式的路径66

    7.2.2Buffer形式的路径67

    7.2.3URL对象的路径68

    7.3打开文件69

    7.3.1文件系统标志69

    7.3.2【实例10】打开文件的例子71

    7.4读取文件72

    7.4.1【实例11】用fs.read()方法读取文件72

    7.4.2【实例12】用fs.readdir()方法读取文件73

    7.4.3【实例13】用fs.readFile()方法读取文件74

    7.5写入文件75

    7.5.1【实例14】将Buffer写入文件75

    7.5.2【实例15】将字符串写入文件77

    7.5.3【实例16】将数据写入文件78

    第8章Node.jsHTTP编程80

    8.1创建HTTP服务器80

    8.1.1【实例17】用http.Server创建服务器80

    8.1.2理解http.Server事件的用法81

    8.2处理HTTP的常用操作83

    8.3请求对象和响应对象84

    8.3.1理解http.ClientRequest类84

    8.3.2理解http.ServerResponse类88

    8.4REST概述91

    8.4.1REST的定义92

    8.4.2REST的设计原则92

    8.5成熟度模型94

    8.5.1第0级:用HTTP作为传输方式94

    8.5.2级:引入了资源的概念96

    8.5.3第2级:根据语义使用HTTP动词97

    8.5.4第3级:使用HATEOAS98

    8.6【实例18】构建REST服务的例子100

    8.6.1新增用户101

    8.6.2修改用户102

    8.6.3删除用户103

    8.6.4响应请求104

    8.6.5运行应用105

    第3篇Express――Web服务器

    第9章Express基础110

    9.1安装Express110

    9.2【实例19】编写“HelloWorld”应用112

    9.3【实例20】运行“HelloWorld”应用112

    0章Express路由――页面的导航员114

    10.1路由方法114

    10.2路由路径115

    10.2.1【实例21】基于字符串的路由路径116

    10.2.2【实例22】基于字符串模式的路由路径116

    10.2.3【实例23】基于正则表达式的路由路径117

    10.3路由参数117

    10.4路由处理器118

    10.4.1【实例24】单个回调函数118

    10.4.2【实例25】多个回调函数118

    10.4.3【实例26】一组回调函数118

    10.4.4【实例27】独立函数和函数数组的组合119

    10.5响应方法119

    10.6【实例28】基于Express构建RESTAPI120

    10.7测试Express的RESTAPI122

    10.7.1测试用于创建用户的API122

    10.7.2测试用于删除用户的API122

    10.7.3测试用于修改用户的API123

    10.7.4测试用于查询用户的API124

    1章Express错误处理器125

    11.1捕获错误125

    11.2默认错误处理器127

    11.3自定义错误处理器128

    第4篇MongoDB篇――NoSQL数据库

    2章MongoDB基础132

    12.1MongoDB简介132

    12.2安装MongoDB133

    12.3启动MongoDB服务134

    12.4链接MongoDB服务器135

    3章MongoDB的常用操作136

    13.1显示已有的数据库136

    13.2创建、使用数据库136

    13.3插入文档137

    13.3.1【实例29】插入单个文档137

    13.3.2【实例30】插入多个文档138

    13.4查询文档139

    13.4.1嵌套文档查询139

    13.4.2嵌套字段查询139

    13.4.3使用查询运算符140

    13.4.4多条件查询140

    13.5修改文档140

    13.5.1修改单个文档141

    13.5.2修改多个文档141

    13.5.3替换单个文档142

    13.6删除文档142

    13.6.1删除单个文档143

    13.6.2删除多个文档143

    4章【实例31】使用Node.js操作MongoDB144

    14.1安装mongodb模块144

    14.2访问MongoDB145

    14.3运行应用146

    5章mongodb模块的综合应用148

    15.1【实例32】建立连接148

    15.2【实例33】插入文档149

    15.3【实例34】查找文档150

    15.4修改文档152

    15.4.1【实例35】修改单个文档153

    15.4.2【实例36】修改多个文档157

    15.5删除文档158

    15.5.1【实例37】删除单个文档158

    15.5.2【实例38】删除多个文档159

    第5篇Angular――前端应用开发平台

    6章Angular基础162

    16.1常见的UI编程框架162

    16.1.1Angular与jQuery的不同162

    16.1.2Angular与React、Vue.js优势对比164

    16.1.3Angular、React、Vue.js三者怎么选165

    16.2Angular的安装165

    16.3AngularCLI的常用操作166

    16.3.1获取帮助166

    16.3.2创建应用167

    16.3.3创建组件167

    16.3.4创建服务167

    16.3.5启动应用167

    16.3.6添加依赖167

    16.3.7升级依赖167

    16.3.8自动化测试167

    16.3.9下载依赖168

    16.3.10编译168

    16.4Angular架构概览168

    16.4.1模块169

    16.4.2组件170

    16.4.3模板、指令和数据绑定170

    16.4.4服务与依赖注入170

    16.4.5路由170

    16.5【实例39】创建个Angular应用171

    16.5.1使用AngularCLI初始化应用171

    16.5.2运行Angular应用173

    16.5.3了解src文件夹174

    16.5.4了解根目录175

    7章Angular模块――大型前端应用管理之道178

    17.1模块概述178

    17.1.1什么是模块化178

    17.1.2认识基本模块179

    17.1.3认识特性模块180

    17.2引导启动180

    17.2.1了解declarations数组181

    17.2.2了解imports数组182

    17.2.3了解providers数组182

    17.2.4了解bootstrap数组182

    17.3常用模块182

    17.3.1常用模块182

    17.3.2BrowserModule和CommonModule183

    17.4特性模块183

    17.4.1领域特性模块183

    17.4.2带路由的特性模块184

    17.4.3路由模块184

    17.4.4服务特性模块184

    17.4.5可视部件特性模块185

    17.5入口组件185

    17.5.1引导用的入口组件185

    17.5.2路由用的入口组件186

    17.5.3entryComponents186

    17.5.4编译优化186

    8章Angular组件――独立的开发单元187

    18.1数据展示187

    18.1.1【实例40】数据展示的例子187

    18.1.2使用插值表达式显示组件属性189

    18.1.3组件关联模板的两种方式189

    18.1.4在模板中使用指令190

    18.2生命周期190

    18.2.1生命周期钩子190

    18.2.2【实例41】生命周期钩子的例子191

    18.2.3生命周期钩子的顺序193

    18.2.4了解OnInit()钩子194

    18.2.5了解OnDestroy()钩子195

    18.2.6了解OnChanges()钩子196

    18.2.7了解DoCheck()钩子196

    18.2.8了解AfterView钩子197

    18.2.9了解AfterContent钩子197

    18.3组件的交互方式197

    18.3.1【实例42】通过@Input把数据从父组件传到子组件197

    18.3.2【实例43】通过set()方法截听输入属性值的变化199

    18.3.3【实例44】通过ngOnChanges()方法截听输入属性值的变化200

    18.3.4【实例45】用父组件监听子组件的事件202

    18.3.5【实例46】父组件与子组件通过本地变量进行交互204

    18.3.6【实例47】父组件调用@ViewChild()方法获取子组件的值206

    18.3.7【实例48】父组件和子组件通过服务来通信207

    18.4样式210

    18.4.1【实例49】使用组件样式的例子211

    18.4.2样式的作用域211

    18.4.3特殊的样式选择器213

    18.4.4把样式加载进组件的几种方式213

    9章Angular模板和数据绑定216

    19.1模板表达式216

    19.1.1模板表达式上下文217

    19.1.2编写模板表达式的最佳实践217

    19.1.3管道操作符218

    19.1.4安全导航操作符和空属性路径218

    19.1.5非空断言操作符218

    19.2模板语句219

    19.3数据绑定220

    19.3.1从数据源到视图220

    19.3.2从视图到数据源220

    19.3.3双向绑定221

    19.4属性绑定221

    19.4.1单向输入221

    19.4.2绑定目标221

    19.4.3一次性字符串初始化221

    19.4.4选择“插值表达式”还是“属性绑定”222

    19.5事件绑定222

    19.5.1目标事件222

    19.5.2$event和事件处理语句222

    19.5.3使用EventEmitter类自定义事件223

    第20章Angular指令――组件行为改变器225

    20.1指令类型225

    20.2属性型指令225

    20.2.1了解NgClass、NgStyle、NgModel指令226

    20.2.2【实例50】创建并使用属性型指令227

    20.2.3【实例51】响应用户引发的事件228

    20.2.4【实例52】使用@Input数据绑定向指令传递值229

    20.2.5【实例53】绑定多个属性231

    20.3结构型指令232

    20.3.1了解NgIf指令232

    20.3.2了解NgSwitch指令232

    20.3.3了解NgFor指令233

    20.3.4了解<ng-template>标签234

    20.3.5了解<ng-container>标签234

    20.3.6【实例54】自定义结构型指令235

    第21章Angular服务与依赖注入238

    21.1初识依赖注入238

    21.2在Angular中实现依赖注入239

    21.2.1观察初始的应用240

    21.2.2创建服务242

    21.2.3理解注入器242

    21.2.4理解服务提供商245

    21.2.5注入服务249

    21.2.6单例服务250

    21.2.7组件的子注入器250

    21.2.8测试组件250

    21.2.9服务依赖服务251

    21.2.10依赖注入令牌252

    21.2.11可选依赖252

    21.3多级依赖注入252

    21.3.1注入器树252

    21.3.2注入器冒泡253

    21.3.3在不同层级提供同一个服务253

    21.3.4组件注入器253

    第22章Angular路由254

    22.1配置路由254

    22.1.1【实例55】配置路由器254

    22.1.2输出导航生命周期中的事件256

    22.1.3【实例56】设置路由出口256

    22.2理解路由器链接257

    22.2.1路由器状态257

    22.2.2激活的路由257

    22.3路由事件258

    22.4重定向URL258

    22.5【实例57】一个路由器的例子259

    22.5.1创建应用及组件259

    22.5.2修改组件的模板260

    22.5.3导入并设置路由器260

    22.5.4添加路由出口261

    22.5.5美化界面262

    22.5.6定义通配符路由264

    第23章Angular响应式编程266

    23.1了解Observable机制266

    23.1.1Observable的基本概念266

    23.1.2定义观察者267

    23.1.3执行订阅268

    23.1.4创建Observable对象269

    23.1.5实现多播270

    23.1.6处理错误273

    23.2了解RxJS技术273

    23.2.1创建Observable对象的函数274

    23.2.2了解操作符275

    23.2.3处理错误276

    23.3了解Angular中的Observable277

    23.3.1在EventEmitter类上的应用278

    23.3.2在调用HTTP方法时的应用278

    23.3.3在AsyncPipe管道上的应用279

    23.3.4在Router路由器上的应用279

    23.3.5在响应式表单上的应用280

    第24章AngularHTTP客户端282

    24.1初识HttpClient282

    24.2认识网络资源282

    24.3【实例58】获取天气数据284

    24.3.1导入HttpClient284

    24.3.2编写空气质量组件285

    24.3.3编写空气质量服务285

    24.3.4将服务注入组件286

    24.3.5返回带类型检查的响应288

    24.3.6读取完整的响应体288

    24.4错误处理290

    24.4.1获取错误详情291

    24.4.2重试292

    第6篇综合应用――构建一个完整的互联网应用

    第25章总体设计294

    25.1应用概述294

    25.1.1mean-news的核心功能295

    25.1.2初始化数据库295

    25.2模型设计295

    25.2.1用户模型设计295

    25.2.2新闻模型设计296

    25.3接口设计296

    25.4权限管理296

    第26章客户端应用298

    26.1UI设计298

    26.1.1首页UI设计298

    26.1.2新闻详情页UI设计299

    26.2实现UI原型299

    26.2.1初始化mean-news-ui300

    26.2.2添加NG-ZORRO300

    26.2.3创建新闻列表组件303

    26.2.4设计新闻列表原型304

    26.2.5设计新闻详情页原型306

    26.3实现路由器309

    26.3.1创建路由309

    26.3.2添加路由出口309

    26.3.3修改新闻列表组件309

    26.3.4给“返回”按钮添加事件310

    26.3.5运行应用311

    第27章服务器端应用312

    27.1初始化服务器端应用312

    27.1.1创建应用目录312

    27.1.2初始化应用结构312

    27.1.3在应用中安装Express313

    27.1.4编写“HelloWorld”应用314

    27.1.5运行“HelloWorld”应用314

    27.2初步实现用户登录认证功能314

    27.2.1创建服务器端管理组件314

    27.2.2添加组件到路由器315

    27.2.3使用HttpClient315

    27.2.4访问服务器端接口316

    27.2.5给服务器端接口设置安全认证318

    27.3实现新闻编辑器320

    27.3.1集成ngx-Markdown插件320

    27.3.2导入MarkdownModule模块321

    27.3.3编写编辑器界面321

    27.3.4在服务器端新增创建新闻的接口325

    27.3.5运行应用327

    27.4实现新闻列表展示328

    27.4.1在服务器端实现新闻列表查询的接口328

    27.4.2在客户端实现客户端访问新闻列表的REST接口329

    27.4.3运行应用330

    27.5实现新闻详情展示331

    27.5.1在服务器端实现新闻详情查询的接口331

    27.5.2在客户端实现调用新闻详情页的REST接口333

    27.5.3设置路由334

    27.5.4运行应用334

    27.6实现认证信息的存储及读取335

    27.6.1实现认证信息的存储335

    27.6.2实现认证信息的读取336

    27.6.3改造认证方法336

    27.6.4改造对外的接口337

    27.7总结339

    第28章用NGINX实现高可用340

    28.1NGINX概述340

    28.1.1NGINX特性340

    28.1.2安装、运行NGINX340

    28.1.3验证安装343

    28.1.4常用命令344

    28.2部署客户端应用345

    28.2.1编译客户端应用345

    28.2.2部署客户端应用的编译文件346

    28.2.3配置NGINX346

    28.3实现负载均衡及高可用347

    28.3.1配置负载均衡348

    28.3.2负载均衡常用算法349

    28.3.3实现服务器端服务器的高可用350

    28.3.4运行应用351

    参考文献353

    柳伟卫,英文名Way Lau,80后程序员,关注编程、系统架构、性能优化。对技术抱有极大的热情,坚持每天学习。喜欢开源,乐于分享。具有多年软件开发管理及系统架构经验。负责过多个重量及省级大型分布式系统的设计与研发,也参与过多个大型项目系统架构的技术改造。现为某集团技术公司项目经理,负责大型分布式系统的微服务化改造。

    写作背景 曾经业界流行使用LAMP架构(Linux、Apache、MySQL和PHP)来快速开发中小。LAMP是开放源代码的,而且使用简单、价格低廉,因此LAMP架构成为当时开发中小的*,号称“平民英雄”。 而今随着Node.js的流行,JavaScript终于在服务器端拥有一席之地。JavaScript成为从前端到后端再到数据库能够支持全栈开发的语言。而以MongoDB、Express、Angular和Node.js四种开源技术为核心的MEAN架构,除具备LAMP架构的一切优点外,还能支撑高可用、高并发的大型互联网应用的开发。MEAN架构势必也会成为新的“平民英雄”。 市面上独立讲解MongoDB、Express、Angular和Node.js的书较为丰富(包括笔者也出版了《Angular企业级应用开发实战》《Node.js企业级应用开发实战》等书),但将这些技术综合运用的案例和资料比较少。鉴于此,笔者撰写了这本书加以补充。希望读者通过学习本书具有全栈开发的能力。 本书涉及的技术及相关版本 请读者将相关开发环境设置成不低于本书所采用的配置。 ? Node.js 12.9.0 ? NPM 6.12.2 ? Express 4.17.1 ? MongoDB Community Server 4.0.10 ? MongoDB 3.3.1 ? Angular CLI 8.3.0 ? NG-ZORRO 8.1.2 ? ngx-Markdown 8.1.0 ? basic-auth 2.0.1 ? NGINX 1.15.8 本书特点 1.可与笔者在线上交流 本书提供以下交流网址,读者有任何技术的问题都可以向笔者提问。 https://github.com/waylau/mean-book-samples/issues 2.提供了基于技术点的58个实例和1个综合性实战项目 本书提供了58个MEAN架构技术点的实例,将理论讲解落实到代码实现上。这些实例具有很高的应用价值和参考价值。在掌握了基础之后,本书还提供了1个综合性实战项目。 3.免费提供书中实例的源文件 本书免费提供书中所有实例的源文件。读者可以一边阅读本书,一边参照源文件动手练习。这样不仅可以提高学习的效率,还可以对书中的内容有更加直观的认识,从而逐渐培养自己的编程能力。 4.覆盖的知识面广 本书覆盖了MongoDB、Express、Angular、NG-ZORRO、ngx-markdown、basic-auth和NGINX等在内的MEAN架构技术点,技术前瞻,案例丰富。不管是编程初学者,还是编程高手,都能从本书中获益。本书可作为读者的案头工具书,随手翻阅。 5.语言简洁,阅读流畅 本书采用结构化的层次,并采用简短的段落和语句,让读者读来有顺水行舟的轻快感。 6.案例的商业性、应用性强 本书提供的案例多数来源于真实的商业项目,具有很高的参考价值。有些代码甚至可以移植到自己的项目中直接使用,使从“学”到“用”这个过程变得更加直接。

    覆盖面广:含MongoDB、Express、Angular、NG-ZORRO、ngx-markdown、basic-auth和NGINX等在内的MEAN架构技术点 实例丰富: 58个实例,把知识都用实例来学习 综合性项目: 一个完整的、企业级的、前后端分离的应用——“新闻头条”

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购