
2、package.json 这个可以说是模块管理包,项目信息和模块的版本号,其实你会发现在项目模块初始化的时候就是由这里的配置去查找生成的。
3、app.js 是项目的启动文件,可以说是项目的核心。主要写一些公共的功能。
4、bin 文件下有个无后缀的www文件,这是项目的入口文件,配置web服务端口和一些监听事件。
5、node_modules是项目的依赖的的文件模块,之后导入的包也会被放在其中,比如连接数据库的mongoose模块,后面会详细讲。
6、public 是项目的静态资源文件集,很容易看出图片、css文件、js文件都放在这里。
7、routes 是项目的路由模块,其中已经默认了index.js和user.js文件。在这里其实也包括一般后台语言中的控制器内容,当然在大的项目上是可以分离开来的。
8、views是项目的模版文件,是jade模版引擎,这个模版很简洁,但是坑也比较多,比如对空格的要求都非常严格,多一个少一个空格都会报错的,曾经踩过很多坑,其实它的性能也不是很高还不如用ejs呢。
五、安装mongoDB
1、同样在官网(http://www.mongodb.org/downloads)上直接下载msi文件
2、简单的下一步进行安装,有默认的就让其默认,有选择的就全选了
3、然后配置环境变量,和node的一样不再累述,不过可以放中图,哈哈哈……

4、接下来是启动mongoDB服务
5、通过命令:mongod --dbpath f:MongoDBdata 其中 f:MongoDBdata是文件存放路径,看到如下信息说明成功了

6、MongoDB监听的是27017端口,同时打开浏览器输入http://127.0.0.1:27017,则会看到如下提示:
It looks like you are trying to access MongoDB over HTTP on the native driver port.
7、然后,再打开一个cmd,输入mongo命令链接数据库,出现如下提示:
2015-05-02T17:10:19.467+0800 I CONTROL Hotfix KB2731284 or later update is not installed, will zero-out data files MongoDB shell version: 3.0.2 connecting to: test
8、这样windows环境下的monogDB就安装成功了。
补充:
9、如果你嫌每次用命令打开服务麻烦的话,可以写成批处理文件,就是新建一个后缀.bat的文件,写上如下代码:
start mongod --dbpath F:MongoDBdata
10、当然了,你也可以将MongoDB以服务的方式启动,不过我觉得在学习的过程中用处不大,小伙伴们可以自己尝试一下,如果有需要的话,我在后面会补上。
11、要是觉得命令行不好用,推荐一个带图形化界面的软件:MongoVUE,就和navicat差不多,它有免费版的,就是功能少点,但学习过程中完全足够了
六、在node项目中使用monogDB
1、导入monogDB连接模块,express 官方介绍的是mongoskin模块,这个我就不说了,这里介绍通过mongoose安装
2、在myapp项目下执行命令 npm install mongoose -save 安装保存到node_modules,也可以在package.json中配置"mongoose": "^4.4.12",然后命令npm install 安装。
3、在app.js文件中
a、导入mongoose模块:
var mongoose = require("mongoose");
b、创建数据库连接
mongoose.connect("mongodb://localhost/myDB") //连接本地数据库
4、在项目根目录下新建文件夹schemas,这个是数据集模块,在模块下新建users.js文件
var mongoose = require("mongoose");//申明一个mongoons对象var UsersSchema = new mongoose.Schema({ name: String, paw: String, meta: { createAt: { type: Date, default: Date.now()},updateAt: { type: Date, default: Date.now()} }})//每次执行都会调用,时间更新操作UsersSchema.pre("save", function(next) { if(this.isNew) {this.meta.createAt = this.meta.updateAt = Date.now(); }else {this.meta.updateAt = Date.now(); } next();})//查询的静态方法UsersSchema.statics = { fetch: function(cb) { //查询所有数据return this .find() .sort("meta.updateAt") //排序 .exec(cb) //回调 }, findById: function(id, cb) { //根据id查询单条数据return this .findOne({_id: id}).exec(cb) }}//暴露出去的方法module.exports = UsersSchema 5、在根目录新增modules文件,这个是数据模型模块,在模块下新增users.js文件var mongoose = require("mongoose") var UsersSchema = require("../schemas/users") //拿到导出的数据集模块 var Users = mongoose.model("Users", UsersSchema) // 编译生成Movie 模型module.exports = Users
var express = require("express");var mongoose = require("mongoose");//导入mongoose模块var Users = require("../models/users");//导入模型数据模块var router = express.Router();/* GET users listing. */router.get("/", function(req, res, next) { res.send("respond with a resource");});//查询所有用户数据router.get("/users", function(req, res, next) { Users.fetch(function(err, users) {if(err) { console.log(err);}res.render("users",{title: "用户列表", users: users}) //这里也可以json的格式直接返回数据res.json({data: users}); })})module.exports = router;7、在views文件下新增users.jadeextends layoutblock content h1= title //jade取值方式 ul each user in users //jade模版的遍历方式lih4 #{user.name} span #{user.paw}