Node.js +Express+MongoDB+mogoose+ejs+bootstrap+jquery
Node.js + MongoDB 项目实战(二) 创建项目
在项目实战(一)中,已经配置好了开发环境(详见:http://www.cnblogs.com/jameslong/articles/3451152.html),这一节,来创建一个具体的项目,并对项目结构进行解析;
可以参考:http://expressjs.jser.us/guide.html
1. 在本地安装express项目
打开CMD命令行工具,输入npm install -g express 将express安装到本地,-g为全局安装的意思,这样可以在本地计算机的任何位置使用express框架生成器生成项目;
2. 创建项目文件结构
项目文件可以自己创建,也可以使用express框架,现在直接使用express框架,则在cmd中输入:“express myapp”即可在制定的文件夹下创建名为myapp的项目;在完成项目安装后会提示安装依赖,根据提示进行操作即可;
3. 打开项目下的package.json的文件:
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "3.4.8"
}
}
json是一种文本格式,内容以“键”:“值”对的方式存在,可以嵌套,此种类型为集合;name是包名,scripts下的star是对项目启动的描述,在命令行中跳转到项目文件夹下,输入node app.js即可启动该应用,version是包的版本,dependencies:是依赖,node.js中要只要要项目调用,则必须指明其依赖关系,express:3.4.8 是node.js的mvc框架express的版本(为本博文创建时的最新版)。
4. 项目测试
在命令行CMD中跳转到项目文件夹下,输入mode app.js 会输出 Express server listening on port 3000
在浏览器url中输入127.0.0.1:3000 按下回车键即可;
5. 项目补充
上面创建的是最简单,也是最基本的项目框架,在项目中还要有模板引擎 ejs jade 等,还有session , stylus 等等,这些都是可以在项目需要的时候添加进去;比如要添加ejs模板引擎,方法很简单,打开项目中的package.json文件,然后在dependencies 中加上:“ejs”:"*",保存文件,并在CMD中输入“npm install”即可完成安装;然后在app.js 文件中修改模板引擎即可,express默认是jade模板引擎。其他的包类似,代码编辑器webstorm 中有node.js 的包管理器,可以直接选择需要添加的包,mogoose让mongoDB操作更简单,所以mongoose是一个包,用来操作mongoDB数据库的,后面用到该数据库,再讲解这个包的安装以及使用。
6. 完善项目
bootstrap,jquery等UI ,JS框架,只要按照从官网上下载相应的版本,解压,将文件放在public文件夹下对应的文件夹中,按照常规的方式进行引用即可。
到此node.js的项目就搭建起来了,对于新手来说,可能觉得云里雾里,或者是本人比较笨拙吧,在接触node.js 之初,只会按照《node.js 开发指南》一束照抄,但是后来才发现其实也没那么难;
对于新手,不管是接触任何技术,都会面临的一个困难,就是不知道一个项目的结构,各部分的职责,各部分的关联,以及工作机制。其实,在软件工程中,很多的东西都是互通的。
Node.js +Express+MongoDB+mogoose+ejs+bootstrap+jquery的更多相关文章
- Node.js Express+Mongodb 项目实战
Node.js Express+Mongodb 项目实战 这是一个简单的商品管理系统的小项目,包含的功能还算挺全的,项目涵盖了登录.注册,图片上传以及对商品进行增.删.查.改等操作,对于新手来说是个很 ...
- Node.js+Express+MongoDB数据库实现网页注册登入功能
通过 Node.js + Express + MongoDB 实现网页注册账号 和 登入账号的功能 项目准备: 1: 事先准备好项目的页面 (首页页面 index.html)(登入页面 login.h ...
- node.js+express+mongodb
主要是想用node.js链接mongodb,用的是mongoose.用ejs引擎,扩展到.html比较容易 小例子结构简单,框架清晰. 提交方法 路径 方法 作用 get add post a ...
- 【nodejs笔记1】配置webstorm + node.js +express + mongodb开发博客的环境
1. 安装webstorm 并破解 2. 安装node (以及express框架) 至官网下载并安装.(http://nodejs.org)v0.10.32 msi 安装后测试,打开命令行, c ...
- Node.js + Express + Mongodb 开发搭建个人网站(一)
一.Node + Express环境搭建 0.去Node官网下载安装node,如果安装了 npm 和 node的话 那么就 安装 全局的 express,-g全局安装 npm install expr ...
- ubuntu安装node.js+express+mongodb
输入以下命令安装: sudo apt-get install nodejs 安装完成后,终端输入nodejs,就能进入node命令啦: 但是正常下应该是输入node进入命令而不是nodejs: 在Ub ...
- ubuntu 安装node.js + express + mongodb
转载自http://my.oschina.net/reg/blog/289536 Ctrl + Alt + T,打开终端,输入以下命令安装: sudo apt-get install nodejs 安 ...
- Node.js + Express + Mongodb 开发搭建个人网站(二)
二.路由 1.打开 routes/index.js ,这个意思就是 捕获到访问主页的get请求: 并通过 app.js 分配到对应的路由里: 看到这里,打开 http://127.0.0.1:300 ...
- Node.js + Express + Mongodb 开发搭建个人网站(三)
三.后台架构 1.在根目录下(和 views 文件夹同级)创建 lib 文件夹 以后所有后端内容 都是在这里写,分别创建三个文件夹 到 lib 目录下: mongo 放的是数据的存储 module ...
随机推荐
- python 基础学习(元组,if,for)
1.tuple对象 tuple 元组 有序的列表 tuple一旦创建不能修改 a.定义元组t=('a','b','c')空元素的tuple t=()()既表示tuple 也表示运算符的优先级 所以定义 ...
- js 面试题
1.用原生js,创建一个无序列表添加到body中,ul下包含5个li,每个li包含一个text类型元素,text元素内容可自定义: <script type="text/javascr ...
- BZOJ2721 [Violet 5]樱花
先令n! = a: 1 / x + 1 / y = 1 / a => x = y * a / (y - a) 再令 k = y - a: 于是x = a + a ^ 2 / k => ...
- BZOJ3696 化合物
我们可以树形dp... 令f[p][d]表示以p为根的子树,与p距离为d的结点数 然后我们计算答案: 一种是从某个节点q到根p的方案,对和为d的贡献是1 另一种是p的一个子树中的节点x到另一个子树中的 ...
- 智能手机Web开发笔记
智能手机版(简称M版)前端开发终于告一段落,第一次做移动端开发,没有想象中那么难搞,但是期间也遇到了各种这样那样的问题,虽然从小日记都不是自己写的,但是开发笔记还是要自己写的,不敢说让别人学习,只是仅 ...
- javaWeb开发总结 ---- 前端数据插入到后台
一,概述: 本文主要描述如何将数据通过表单提交到后台并插入到数据库.其中后台使用spring框架. 二,开发流程: 明确需求,即将什么数据插入到数据库 平台搭建,配置spring, 数据库,建表 走通 ...
- C# 小规模查找集合性能测试
项目中包含浮点运算,大概每秒 20 - 100 万左右. 其计算结果每秒只包含1000个左右. 因此大量运算是重复性的.程序运行时,cpu 在 3% - 10% 浮动.打算将结果缓存.根据键值索值. ...
- C++-高效的swap
原始版本: template<typename T> void swap(T& a, T& b) { T tmp(a); a = b; b = tmp; } 此版本不重视效 ...
- 兼容 IE,firfox 的时间日期出现 NaN
//当前日期加上天数后的新日期.function AddDays(days) { var d = new Date(); var year = d.getFullYear(); var day = ...
- UINavigationController 子控制器管理原理
UINavigationController 显示在导航控制器上的控制器 永远是栈顶控制器 后进先出 先进后出原则 /** * 程序获得焦点才能获取触摸事件 * */- (void)applicat ...