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:各位观众老爷们,看完点个赞,全部一个字一个字打上去的。
- node.js+express+mongoos使用说明
- node.js express 官方Route使用说明
- Node.js express路由
- Node.js Express
- node.js+eclipse+express
- Node.js Express框架
- node.js+express+mysql
- Node.js Express框架
- Node.js 初探Express
- node.js express
- node.js express(二)
- Node.js Express 框架
- Node.js and Express
- Node.js Express 框架
- node.js express框架
- Node.js Express框架
- Node.JS Express入门
- Node.js Express框架
- vue select当前value没有更新到vue对象属性
- Nginx-Rtmp-Module命令
- JobDataMap
- 学习笔记n
- ARM linux kernel启动流程 head.S(一)
- node.js+express+mongoos使用说明
- 玩转Dragonboard 410c开发板USB摄像头——移动侦测
- iOS Runtime 动态添加属性不能添加intrinsic类型
- 【VS开发】【C/C++开发】printf缓冲区刷新
- LabVIEW(2014)探针监视窗口打不开/消失 解决办法
- Hadoop自定义InputFormat以实现多文件输入 MultiFileInputFormat
- 从问题到模型——建模能力——数学基础
- BlockingQueue 阻塞队列
- UVA 11572