zoukankan      html  css  js  c++  java
  • 使用nodejs连接mongoDB的详细步骤

    使用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');
  • 相关阅读:
    py4CV例子2汽车检测和svm算法
    py4CV例子1猫狗大战和Knn算法
    KNN(K-Nearest Neighbor)介绍
    从机器学习谈起
    基于QProbe创建基本Android图像处理框架
    qtquickcontrols2控件集(使用参考重构)
    QtQuickcontrols2控件使用参考
    QTQuick控件基础(3)视图
    QTQuick控件基础(2)
    在win和android上同时进行OpenCV程序设计
  • 原文地址:https://www.cnblogs.com/yan--li/p/8025036.html
Copyright © 2011-2022 走看看