nodeJS实战

  github代码托管地址: https://github.com/Iwillknow/microblog.git

  根据《NodeJS开发指南》实例进行实战{{%并且希望一步步自己能够逐步将这个博客系统一点点完善,我会在github上及时更新代码%}}。不得不提下的是,因为版本原因,只是按照书本上的步骤是无法使程序正确跑起来。这样倒有一个很好的好处,在不断地解决问题的过程中,将学到更多的东西。

  本文不会对app构建步骤进行详细说明,因为你完全可以参照书本进行搭建。本文重点是解读代码,解读整个app的架构。对于我自己来说,也算是对这一周学习的总结。

以下附上两个学习链接:

  ① nodeJS开发指南

//即阅读的书籍

  ② nodejs开发指南出现的问题汇总

//很值得参考,但是不保证过程中你还会出现其他问题,>_<因为本人就遇到过很多不在这汇总之中的问题

  ReadyGo

  先来看下项目结构

  

  • models

可以把它定义为是和数据库操作相关的一些文件

  。db.js

用于连接数据库,因为在之后的post.js、user.js等要和数据库里的数据打交道的文件里,都是需要先连接数据库,并且获得操作数据库的实例,所以我们可以将其封装成模块,并且通过module.exports暴露出来。而封装的结果就是此处的db.js文件

  。post.js

post模型,对应每条微博信息的格式---user{{微博的作者}}、post{{微博的内容}}、time{{微博发布的时间}}

对应的collection为‘posts‘---如果对这中比较迷惑,建议自学 mongodb  

定义实现了对post模型的基本操作方法:

save方法,作为Post.prototype原型上的方法,实现新微博信息的存储

get方法,作为Post的静态方法,根据指定的用户名,查找该用户的微博,并且将所拥有的微博信息封装成Post对象

var post = {     //可以认为这就是在数据中存储的表的形式
        user: this.user,
        post: this.post,
        time: this.time,
    }; 

  。user.js

user模型,对应用户的登陆信息,格式为---name{{用户名}}、password{{用户密码}}   

对应的collection为‘users‘

定义实现了对user模型的基本操作方法:

save方法,作为User.prototype原型上的方法,实现对新用户的注册

get方法,作为User的静态方法,根据指定的用户名,查找该用户的账户信息,并将其封装成User对象 

  • node_modules

该项目所依赖的模块文件。不得不提下的是,对于开发过程中,通过npm install -g &**** 安装的模块文件都是安装在该目录下

  • public

该文件夹下存放的是静态文件,如js文件、css文件、less文件、图片等

  • routes

路由文件夹,存有路由文件,需要提醒一下的是,我使用的事ejs模板引擎。

  • views

视图文件,存有模板文件

  • access.log

记录日志文件

  • app.js

应用的入口文件,可以这么说,我们所有其他的文件就是一个个的组件形式,MVC就是将项目分解解耦,而app.js是协调各个组件合作完成工作,从而使真个应用作为一个整体

  • error.log

记录错误日志文件

  • package.json

是nodeJs项目模块配置文件。当我们修改了package.json文件后,如添加了某一个新依赖模块,在终端运行npm install,就会自动将新的依赖模块安装好,而安装的最终位置就是上面提到的node_modules

  • README.md

说明文件,待完善。。。

  • setting.js 

配置文件,此处配置了数据库的信息

nodeJS实战

时间: 2024-11-04 15:29:26

nodeJS实战的相关文章

nodejs实战的github地址,喜欢的你还等啥

第一章.第二章:使用Express + MongoDB搭建多人博客:https://github.com/nswbmw/N-blog 第三章:使用Redis搭建漂流瓶服务器:https://github.com/nswbmw/N-drifter 第四章:使用Meteor搭建微博网站:https://github.com/nswbmw/N-weibo 第五章:使用socket.io+Angular打造单页应用:https://github.com/island205/technode-tutori

[在读]Nodejs实战

书到手的时候其实就已经过时,Express更新太快,因而书中的例子实践起来会有很多阻碍. 目前搁置状态.

CSS3实战开发:仿天猫首页图片展示动画特效实战开发

各位网友大家好,我是陌上花会开,人称陌陌.今天我带领大家开发一个仿天猫首页图片展示动画特效的案例.一如往常,我既不提供源码给大家,也不提供Demo给大家,只是希望大家能跟着我的讲解,然后将代码一步步复制到本地,本人可以保证,页面上的代码复制到本地,绝对百分百运行,且得到与陌陌一样的运行效果.我这么做只为激起大伙的动手能力,望大家能明白我的用心. 好了,不废话了,直接本篇的实战开发吧. 我们看一下我们今天要做的实战案例效果图: 1. 鼠标划过前: 2. 鼠标划过右侧的图片时: 可能大伙看这个静态截

Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享

muke慕课实战课程分享QQ313675301 新增课程: Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享 后端开发: 1.高级java软件架构师实战培训视频教程2.大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程3.Spark Streaming实时流处理项目实战4.Java校招面试 Google面试官亲授5.Java开发企业级权限管理系统6.Java大牛 带你从0到上线开发企业级电商项目7.Java

慕课网160部破解实战收费课程_共892G百度云盘]

以下课程,需要的可以加我微*信:hgh813210,备注你需要的课程 Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享 前端成长必经之路 基于Storm构建实时热力分布项目实战 Spark Streaming实时流处理项目实战 以慕课网日志分析为例 进入大数据 Spark SQL 的世界 手工测试企业项目实践及面试提升 Webpack + React全栈工程架构项目实战精讲 深度学习之神经网络核心原理与算法 Android应用发展趋势必备武器 热修复与插件化

超多慕课网实战教程破解自学教程百度云盘分享-Python/Java/前端后端/小程序/运维测试/人工智能

以下课程,需要的可以加我微*信:hgh813210,备注你需要的课程 Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享 前端成长必经之路 基于Storm构建实时热力分布项目实战 Spark Streaming实时流处理项目实战 以慕课网日志分析为例 进入大数据 Spark SQL 的世界 手工测试企业项目实践及面试提升 Webpack + React全栈工程架构项目实战精讲 深度学习之神经网络核心原理与算法 Android应用发展趋势必备武器 热修复与插件化

最新最全慕课网实战教程-百度云盘-破解视频

以下课程,需要的可以加我微*信:hgh813210,备注你需要的课程 Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享 前端成长必经之路 基于Storm构建实时热力分布项目实战 Spark Streaming实时流处理项目实战 以慕课网日志分析为例 进入大数据 Spark SQL 的世界 手工测试企业项目实践及面试提升 Webpack + React全栈工程架构项目实战精讲 深度学习之神经网络核心原理与算法 Android应用发展趋势必备武器 热修复与插件化

springcloud微服务实战

  后端开发: 1.2017龙果微服务架构的分布式事务解决方案 2.2017年龙果spring boot 入门实战视频教程-首套中文教程 3.51CTO Spring Boot实战与原理分析视频课程 4.ElasticSearch5视频教程 5.Elasticsearch顶尖高手系列:高手进阶篇(最新第二版) 6.IDEA学习视频 7.Java 微服务实践 - Spring Boot 系列 8.JAVA-ACE-架构师系列视频课程-RocketMQ 9.Java-分布式学习系列 10.Jfina

Node稳定性的研究心得

目前大部分Web服务器,如Apache,都使用多线程的方式响应多用户请求,即一个线程服务一个用户请求.这种模式其中一个好处是,当某个请求的线程上抛出的异常没被捕获,只会影响当前这个线程,不会影响其他请求. 由于Node执行在单线程上,一旦线程上抛的异常没有被捕获,就会引起整个进程的崩溃.所以对Node服务的异常处理.保证进程的稳定性非常重要. 再好的程序员也不敢保证自己的代码不出现异常,除了尽可能捕获可能出现的异常,我们还需要通过一些规范减少异常发生,通过单元测试辅助我们验证代码,通过一些工具保