使用Nodejs连接MongoDB的详细步骤
步骤一
-
安装nodejs,express,mongodb,mongoose(这里就不多说了~~)
步骤二
用express快速创建一个项目的框架
express -e project
-
参数说明:-e:使用的模板类型,project:项目名称
创建好项目后
- 进入到创建的项目目录
-
cd project
- 安装package.json文件中项目所依赖的包
-
cnpm install
- 启动项目
-
npm run start
- 目录讲解
- node_modules 项目中依赖的包
- public 静态目录(放公共资源的)
- routes 路由(存放一些路由文件)
- views 视图(存放页面文件)
-
app.js 项目的入口文件
步骤三
设计数据库
- 打开cmd(以管理员的身份)
- 连接数据库(出现版本号就代表连接成功啦)
-
mongo
- 查看所有数据库
-
show dbs
- 创建一个名为admin的数据库
-
use admin
- 进入admin
-
db
- 在admin下创建一张表
-
db.createCollection("goods")
- 查看表
-
show tables
连接数据库
- 在项目根目录下创建一个model文件夹,然后在创建一个data.js(存放数据)和goods.js
- goods.js如下
-
// 引入模块 var mongoose=require('mongoose'); //引入data.js var seafoodList=require('./data.js').seafoodList // 连接数据库 mongoose.connect('mongodb://localhost:27017/admin') // 得到数据库连接句柄 var db=mongoose.connection; //通过 数据库连接句柄,监听mongoose数据库成功的事件 db.on('open',function(err){ if(err){ console.log('数据库连接失败'); throw err; } console.log('数据库连接成功') }) //定义表数据结构 var seafoodModel=new mongoose.Schema({ id:Number, name:String, desc:String, discount:Number, price:Number, coin:Number, remain:String, img_sm:String, img_lg:String },{ versionKey:false //去除: - -v }) // 将表的数据结构和表关联起来 var seafoodModel=mongoose.model("seafoodList",seafoodModel,"goods"); // 添加数据 seafoodModel.insertMany(seafoodList,function(err,result){ if(err){ console.log("数据添加失败"); throw err; } console.log("数据添加成功:",result); }) //导出数据 module.exports={ seafoodModel:seafoodModel }
步骤四
在routes下创建goods.js
//引入express模块
var express=require("express")
//引入数据模块
var goodsData=require("../model/goods").seafoodModel;
//获取路由对象
var router=express.Router();
//商品管理页
router.get('/goods',function(req,res){
res.render('index/index')
})
//商品信息
router.get('/goodsList',function(req,res){
goodsData.find({},function(err,result){
if(err){
console.log("查询失败")
throw err
}
console.log("查询结果",result)
res.render('goods/goodsList',{title:'商品信息',goodsList:result})
})
})
module.exports=router;
步骤五
在views下创建goods文件夹,在goods下创建goodsList.html
- goodsList.html主要代码如下
-
<div class="page-content"> <div class="page-header"> <h1> 商品管理 <small> <i class="icon-double-angle-right"></i> <%= title%> </small> </h1> </div><!-- /.page-header --> <!--主要内容--> <div class="row"> <table class="table table-bordered table-hover text-center"> <thead> <tr class="success"> <th class="text-center">id</th> <th class="text-center">name</th> <th class="text-center">desc</th> <th class="text-center">discount</th> <th class="text-center">coin</th> <th class="text-center">remain</th> <th class="text-center">img_sm</th> <th class="text-center">img_lg</th> </tr> </thead> <tbody> <% for(var item in goodsList){%> <tr> <td><%= goodsList[item].id%></td> <td><%= goodsList[item].name%></td> <td><%= goodsList[item].desc%></td> <td><%= goodsList[item].coin%></td> <td><%= goodsList[item].remain%></td> <td><%= goodsList[item].discount%></td> <td class="cut"><%= goodsList[item].img_sm%></td> <td class="cut1"><%= goodsList[item].img_lg%></td> </tr> <% }%> </tbody> </table> </div> </div><!-- /.page-content -->
最后ejs转为html
app.set('views', path.join(__dirname, 'views')); app.engine(".html", ejs.__express); //设置模板引擎类型 app.set('view engine', 'html');
更多MongoDB相关教程见以下内容: