node.js+express+mongoos使用说明

来源:互联网 发布:windows nt v6.1下载 编辑:程序博客网 时间:2024/06/04 19:59

关于node.js

提起node.js,很多人可能以为它就是一种类似于javascript的脚本语言。其实不然,它只是一种js的运行平台,使用事件驱动、非阻塞I/O模型,具有轻量和高效的特点使得它非常适用于分布式设备上。

node.js安装

node.js的安装可参考以下网址进行安装:
http://www.runoob.com/nodejs/nodejs-install-setup.html

运行第一个node.js文件

console.log('hello world!');

在该文件路径下打开命令行窗口,输入以下命令:

node demo1.js(这里是文件的名字)

就可以看到如下输入结果,到此说明你的node.js的安装已经完成。

$ node demo1.jshello world!

关于express

express是目前比较好的node.js的框架,使用它可以快速搭建项目,从而更快完成项目开发。

安装express

在指定的文件夹下,打开命令行窗口,键入下面命令即可完成express的安装。

$ npm install express -g

然后你就可以使用命令express -e demo1(这里是你的项目名字)初始化一个项目,它可以给你快速搭建项目,自动创建对应文件夹,文件夹结构如下:

$ express -e demo1   create : demo1   create : demo1/package.json   create : demo1/app.js   create : demo1/public   create : demo1/public/javascripts   create : demo1/public/images   create : demo1/routes   create : demo1/routes/index.js   create : demo1/routes/users.js   create : demo1/public/stylesheets   create : demo1/public/stylesheets/style.css   create : demo1/views   create : demo1/views/index.jade   create : demo1/views/layout.jade   create : demo1/views/error.jade   create : demo1/bin   create : demo1/bin/www

然后,安装所有项目必须的依赖包

$ cd demo1$ npm install

最后,启动项目

$ node app.js 

在浏览器中输入地址:http://localhost:3000 就可以看到你自己新建的项目了。

关于mongoose

mongoose是一个让node.js操作mongodb更见简单方便,主要包括Schema和model两个大模块。

安装mongoose

在安装mongoose之前,请确认已经安装mongodb。再以上操作步骤完成之后,使用下面的命令安装mongoose

$ npm install mongoose

在上面的所有开发环境都准备好了,接下来,就是个实际的例子,希望对你有所帮助。

案例1

先引入所需模块
var express = require('express')var mongoose = require('mongoose')var app = express() 

链接数据库,设置服务器

mongoose.connect('mongodb://localhost/test')app.set('port',3000)app.listen(port)

创建schema

var schema = new mongoose.Schema({ name: 'string', age: 'number' })

创建model

var Person = mongoose.model('Person', schema)
数据库操作
//插入数据var person = new Person({name: 'tom'})person.save(function(err){    if(err){        console.log(err)    }else{        console.log('save success.')    }})//查找数据Person.find({name:'tom'},function(err,doc){    if(err) console.log(err)    else console.log('find success,the information of tom is :' + doc)})//更新数据Person.findOne({name:'tom'},function(err,doc){    if(err) console.log(err)    else{        doc.set({age:24})        doc.save()    }})//删除数据Person.Remove({name:'tom'},function(err){    if(err) console.log(err)    else console.log('remove success.')})

案例2

之所以跟上面分开来讲,并不是用法有是那么不同,只是这个案例会将项目模块化,这样一来,项目便有了更强的可读性。

Schema文件,personSchema.js

var mongoose = require('mongoose')var Schema = mongoose.Schemavar personSchema = new Schema({  name:  String,  sex: String,  work:   String,  birthday: { type: Date, default: Date.now },  hidden: Boolean,  meta: {    createDate: Number,    updateDate:  Number  }})module.exports = personSchema

model文件,personModel.js

var mongoose = require('mongoose');var blogSchema = require('../schemas/blogSchema.js');var Blog = mongoose.model('Blog',blogSchema);module.exports = Blog;

程序主入口文件,app.js

var express = require('express')var path  = require('path')var mongoose = require('mongoose')var app = express()var Person = require('./models/personModel.js')mongoose.connect('mongodb://localhost/Movie');//设置端口号var port = process.env.PORT || 3000;app.set('views','./views/page');app.set('view engine','jade');app.use(express.static(path.join(__dirname,'bower_components')));app.set('port',3000);app.listen(port);console.log("app start at " + port);//index pageapp.get('/index',function(req,res){    //数据库增、删、改、查操作});//detail pageapp.get('/detail',function(req,res){   //some action});//list pageapp.get('/list',function(req,res){    //some action});//admin pageapp.get('/admin',function(req,res){   //some action});

就写到这里了,希望对大家有帮助。ps:各位观众老爷们,看完点个赞,全部一个字一个字打上去的。

1 0