平凡之路
1、创建express项目
express mongooseExpress
2、最简express
var express = require("express");
var app = express();
app.get('/', function(req, res) {
res.send('Hello, tinyphp');
});
,function(){
console.log("请在浏览器访问:http://localhost:3000");
});
3、进入工程目录安装mongoose并引入依赖:
npm install --save mongoose
4、修改app.js
var express = require("express");
var app = express();
app.get('/', function(req, res) {
res.send('Hello, tinyphp');
});
,function(){
console.log("请在浏览器访问:http://localhost:3000");
});
//引入mongoose模块
var mongoose = require('mongoose');
//创建数据库连接
var db=mongoose.connect('mongodb://localhost:27017/test');
//检查是否连接成功
db.connection.on("error",function(error){
console.log("数据库连接失败:"+error);
});
db.connection.on("open",function(error){
console.log("++++++数据库连成功++++++");
});
/*****Schema使用*****/
//定义kitty属性
var kittySchema = mongoose.Schema({
name: String
});
//将该Schema发布为Model,第一个参数为集合名
var kittyModel = mongoose.model('kitty', kittySchema);
//用module创建kitty实体
var kittyEntity = new kittyModel({ name: 'tinyphp99' });
console.log("添加数据"+kittyEntity.name); //打印实体名字
//保存数据
kittyEntity.save();
/************/
成功插入一条记录
这里可以看见,所有的操作都是在app.js里面实现的,怎么把他们分离出来呢?
想着想着去肯德基不小心跟服务员说:要两串骨肉分离吧…
开始改造
下面我们把它改装为一访问http://localhost:3000/add就自动添加数据,
config.js 数据库配置信息
module.exports={
mongodb:"mongodb://localhost:27017/test"
}
mongoose.js 数据库连接文件
var mongoose = require('mongoose');
var config= require('./config.js');
module.exports=function(){
var db = mongoose.connect(config.mongodb);
//检查是否连接成功
db.connection.on("error",function(error){
console.log("数据库连接失败:"+error);
});
db.connection.on("open",function(error){
console.log("++++++数据库连成功++++++");
});
//导入模块
require('../models/kitty.model.js');
return db;
}
kitty.model.js 导出Model用于生成实体
var mongoose =require('mongoose');
var kittySchema = mongoose.Schema({
name: String
});
mongoose.model('kitty', kittySchema);
add.js 使用路由简化启动文件逻辑
var express = require('express');
var router = express.Router();
//引入mongoose
var mongoose =require('mongoose');
var kittyModel = mongoose.model('kitty');
/* GET users listing. */
router.get('/', function(req, res, next) {
//用module创建kitty实体
var kittyEntity = new kittyModel({ name: 'china' });
//保存数据
kittyEntity.save();
res.send("添加数据:"+kittyEntity.name);
});
module.exports = router;
app.js
var express = require("express");
//数据库连接
var mongoose =require('./config/mongoose.js');
var db =mongoose();
var add=require('./routes/add');
var app = express();
//使用路由,便于访问add直接添加数据
app.use('/add', add);
,function(){
console.log("请在浏览器访问:http://localhost:3000");
});
执行node app.js
浏览:http://localhost:3000/add
数据name为China的信息成功添加!
温馨提示:测试多了,不妨使用db.table.drop() 把整个集合删除掉噢
注意事项:
mongoose的初始化,要在 express 之前的,
路由里因为用到kittyModel所以引入要在mongoose初始化后,不然会提示出错“Schema hasn't been registered …”, 自己把上面的顺序调换测试下更深刻噢~
手机扫一扫
移动阅读更方便
你可能感兴趣的文章