最新nodejs的开发学习实战(1)从一个博客开始
像许多刚开始学习Nodejs的朋友一样,一般都是从一个blog开始,因为大家都是这样做的,网上有很多相似的资料可以查看,这样学习起来比较方便,但是Nodejs这门技术,现在的发展实在是太快了,像大家买的书或是网上的实例一出来就过时了,所以诞生了今天这篇文章,希望能给后面的人一点启发!
开发环境:
nodejs:v0.12.7
express:v4.13.1
mongodb:3.0.4
默认大家都已经正确安装并配置好了相应的开发环境。
express是nodejs中核心的web开发框架,我们一般用这个来生成我们的开发应用,
安装express
$ npm install -g express -generator
上述命令是V4.0X以上的安装,如是V4.0.x以下参考其他
查看安装express信息
$ express -V
新建工程,本人在 E:\baiduyun_to_cloud\Nodejs 下面建立工程目录
$ express -e myblog
$ cd nmyblog &&npm install
这行命令可以分成两个来用(cd myblog 和 npm install),看个人习惯,必须注意的是在npm install时,要先进去工程目录
第一个命令是生成一个myblog的工程
第二个命令是在生成目录下安装加载依赖项
上面是整个express框架的生成文件,包含:
1,bin目录,里面是可执行文件www.
2,node_modules,里面是各种中间件框架或是依赖模型
3,public,静态文件夹,里面是各有图片,或是javescript,还有网页渲染文件.CSS等
4,routes,路由文件里面包含index 和users
5, views, index.ejs和error.ejs
6, app,js 入口文件
7,package,依赖文件
下面我们对主要的代码文件进行分析:
1,APP.JS 入口文件
var express = require('express');//导入express 模块
var path = require('path');// 导入路径模块
var favicon = require('serve-favicon');//
var logger = require('morgan');
var cookieParser = require('cookie-parser');//cookie 解析
var bodyParser = require('body-parser');//body 解析
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();//实例化App
// view engine setup
app.set('views', path.join(__dirname, 'views'));//设置views路径
app.set('view engine', 'ejs');//设置模板引擎为EJS,也可以是其它模板,像JADE等
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));//静态public路径
app.use('/', routes);//路由
app.use('/users', users);//路由
// 捕获404错误并传给error
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handlers
// development error handler
// 发现开发错误并打印出来
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// 发现生产错误并打印出来
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
module.exports = app;//导出实例
2,package.json
{
"name": "myblog",//项目名
"version": "0.0.0",//版本
"private": true,
"scripts": {
"start": "node ./bin/www"//运行文件
},
"dependencies": {//依赖项文件及版本
"body-parser": "~1.13.2",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"ejs": "~2.3.3",
"express": "~4.13.1",
"morgan": "~1.6.1",
"serve-favicon": "~2.3.0"
}
}
<span style="font-family:KaiTi_GB2312;font-size:24px;">上面的依赖项就是安装的一些中间件或是数据库等,当把需要的写在dependencieds后,运行npm install,nodejs就会自动下载安装,并保存在node_modules目录下面。(注意npm install要在安装目录下运行)</span>
<span style="font-family:KaiTi_GB2312;font-size:24px;"></span>
<span style="font-family:KaiTi_GB2312;font-size:24px;">关于其他文件的代码分析将在后面的博客中持续更新。。。。。</span>
<span style="font-family:KaiTi_GB2312;font-size:24px;">然后我们在生成项目中运行node ./bin/www 看下效果</span>
<img src="https://img-blog.csdn.net/20150729124631579" alt="" />
<span style="font-family:KaiTi_GB2312;font-size:24px;">在浏览器中输入localhost:3000</span>
<span style="font-family:KaiTi_GB2312;font-size:24px;">或是127.0.0.1:3000查看效果如下,表示成功生成了express框架。这个框架和我们要做的blog究竟有什么关系呢,后面我们将一步一步来学习如何设置路由和登录页面等内容。</span>
本小节完,但项目未完,要知接下来的步骤,请看后面的博客更新。。。。。
最新nodejs的开发学习实战(1)从一个博客开始相关推荐
- HarmonyOS2.0 华为鸿蒙开发学习实战教程
据统计,鸿蒙系统升级用户2周破1800万,1个月突破3000万.升级速度完全超出市场预期,很显然,华为严重低估了消费者的支持热情.随即,华为鸿蒙目标多次升级,从2亿到4亿,后年目标12.3亿. 而且, ...
- Polyworks脚本开发学习笔记(七)-完成一个自动化任务
Polyworks脚本开发学习笔记(七)-完成一个自动化任务 利用之前的命令建立一个自动化脚本 第一步: 设置环境参数 设置注释字体避免出现不兼容中文的乱码,常用微软雅黑 #设置注释字体 VIEW A ...
- 使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理
原文:使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理 摘要 通过对博客文章的管理,实现外键操作. 目录[-] 八.博客文章管理 1.查看文章 2.添加博客 3 ...
- iOS学习的比较好的博客地址
如果你正在寻找见解深刻,并富有教育意义的iOS开发博客,那就找对地方了.下面列出了质量最好且最为活跃的105个线上博客.如你所知,互联网上高质量的iOS博客并不缺乏,但我决定再过滤一下,去芜存菁,找出 ...
- 关于 JavaScript 学习,一些好的博客或者网站
关于 JavaScript 学习,一些好的博客或者网站 我JavaScript学习过程中常去的一些网站与在知乎上看到的一些好的网站分享给大家: 1.首先增加一个重要的内容:JavaScript | M ...
- 关于iOS学习进阶的必读一些博客总结
关于iOS学习进阶的必读一些博客总结 作者 Raybon_lee 2016.01.16 22:28* 字数 3110 经过一周的思考还是决定重组一下优秀的博客,首次整理这些博客比较乱,但是后期会慢慢增 ...
- Docker学习总结(6)——通过 Docker 化一个博客网站来开启我们的 Docker 之旅
2019独角兽企业重金招聘Python工程师标准>>> 通过 Docker 化一个博客网站来开启我们的 Docker 之旅 这篇文章包含 Docker 的基本概念,以及如何通过创建一 ...
- Yii学习--使用Yii来建立博客
Yii 之初体验 安装Yii 创建应用骨架 应用的工作流程 在这一部分里,我们将讲解怎样建立一个程序的骨架作为着手点.为简单起见,我们假设Web服务器根目录是/wwwroot ,相应的URL是 htt ...
- Play Framework_学习_官网Yabe博客指南(一)
从 start -> end 学习 Play Framework 1.4.3 框架搭建一个博客系统--- 虽然这个框架很少看到Java开发者使用,但是也快速开发的一个很不错的框架,它对你代码要求 ...
- Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具)
Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具) 在Android发展前景相当好的情况下,本人最近搜集了一些关于Android的相关资源,当然包含以前发布的博客内容,进行了一 ...
最新文章
- nodejs操作mysql创建库和表_Nodejs操作MySQL数据库
- 《HttpClient官方文档》2.4 多线程请求执行
- Javascript中的深拷贝和浅拷贝
- AI 芯片让你升级智能手机,IoT计算智能革命爆发
- 变量dwNKDrWatsonSize
- 再论PID,PID其实很简单。。。
- android java 8_四个库,让你在 Android 中启用 Java 8 功能
- Python的if判断和两重判断
- 最近为A公司提炼的经营理念之合作理念
- 13 年 29 款手机,从激进到求稳,iPhone 都经历什么?
- CSP202012-2 期末预测之最佳阈值(100分)【序列处理】
- Android反编译与防止反编译
- redhat server 5.4 64 bit 下安装 RealTek RTL8111E 网卡
- mysql rollback.pl_binlog-rollback.pl 在线恢复update 和delete不加条件误操作sql
- unity 游戏内实现3连击动画(状态机)
- 多服务器显卡使用状态监控工具实现
- String类的模拟实现
- IDEA与VsCode两种开发工具的比较
- 免费复制/下载收费文档的方法总结
- 设计模式 - 模版模式
热门文章
- ubuntu mongodb安装
- STL中map与hash_map容器的选择
- Bravo.Reporting:使用 .Net 实现基于 ODF 文档格式的报表系统
- android 快速启动 hibernate,什么是快速启动以及如何在Windows中启用或禁用它 | MOS86...
- linux中swap的权限,有关 Linux Swap
- linux异步事件框架,基于Cortex-M系列CPU的异步事件驱动中间件
- ubantu 安装anaconad_Ubuntu16.04安装Anaconda (转)
- python逢7跳过_python学习笔记(七)break 和continue
- openat函数用法示例
- java 应用编程接口_java 应用程序接口(api)是什么