node.js+express+mongoos使用说明

唐信瑞
2023-12-01

关于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.js
hello 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.Schema

var 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 page
app.get('/index',function(req,res){
    //数据库增、删、改、查操作
});

//detail page
app.get('/detail',function(req,res){
   //some action
});

//list page
app.get('/list',function(req,res){
    //some action
});

//admin page
app.get('/admin',function(req,res){
   //some action
});

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

 类似资料: