实习周记----第三周

实习第三周

华昌项目实习
这一周主要做的事是智能工厂模拟订单的生成,根据智能工厂的订单生成的源码,进一步的学习MongoDB以及AngularJS。MongoDB主要是通过Mongoose来进行操作的,总的来说这周主要还是研究智能工厂的源码,尤其是智能工厂订单生成的源码,弄清楚每一段代码主要是做什么,实现什么功能,当然看源码的过程中也遇到了不少困难,好多代码看起来好复杂,看不懂是什么意思,然后呢就请教丽姐帮忙解释,自己呢也去查阅相关的资料对其技术进一步地了解。

一,Mongoose学习

Mongoose是一个让我们可以通过Node来操作MongoDB数据库的一个模块;
也是一个对象文档模型(ODM)库,它是对Node原生的MongoDB模块进行了进一步的优化封装
大多数情况下,他被用来把结构化的模式应用到一个MongoDB集合,并提供了验证和类型装换等好处
基于MongoDB驱动,通过关系型数据库的思想来实现非关系型数据库

1,引入 mongoose并连接数据库

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
如果有账户密码需要采用下面的连接方式:
mongoose.connect('mongodb://eggadmin:123456@localhost:27017/eggcms');

简单案例:

//1,引用mongoose
const mongoose = require('mongoose');
//2,建立连接
mongoose.connect('mongodb://127.0.0.1:27017/eggcms');
//3,操作users表(集合)  定义一个Schema  Schema里面的字段与数据库表字段一一对应
var UserSchema = mongoose.Schema({
    name: String,
    age: Number,
    status: Number
})
//4,定义数据库模型,操作数据库
// model里面的第一个参数要注意:1,首字母大写,2,要和数据库表(集合)名称对应
// 这个模型会和模型名称相同的复数的数据库表建立连接
var User = mongoose.model('User', UserSchema, 'user');

//查询users表的数据
User.find({}, function (err, doc) {
    if (err) {
        console.log(err);
        return;
    }
    console.log(doc);
})

2,定义 Schema

数据库中的 Schema,为数据库对象的集合。schema 是 mongoose 里会用到的一种数据模式, 可以理解为表结构的定义;每个
schema 会映射到 mongodb 中的一个 collection,它不具备 操作数据库的能力

var UserSchema=mongoose.Schema({
name: String, 
age:Number, 
status:'number' 
})

3,创建数据模型
定义好了 Schema,接下就是生成 Model。model 是由 schema 生成的模型,可以对数据库的操作。
注意:mongoose.model 里面可以传入两个参数也可以传入三个参数
mongoose.model(参数 1: 模型名称(首字母大写),参数 2: Schema )
mongoose.model(参数 1: 模型名称(首字母大写),参数 2: Schema,
参数 3: 数据库集合名称)
如果传入 2 个参数的话:这个模型会和模型名称相同的复数的数据库建立连接:如通过下面方法创建模型,那么这个模型将会操作 users 这个集合。
如果传入 3 个参数的话:模型默认操作第三个参数定义的集合名称。

var User=mongoose.model('User', UserSchema);

4,查找数据

User.find({},function(err,docs){
if(err){
console.log(err);
return;
}
console.log(docs);
})

5,增加数据

var u=new User({ //实例化模型 传入增加的数据
name:'zxb', age:20, status:true
})
u.save();

6,修改数据

User.updateOne({ name: 'zxb' }, { name: '岚岚' }, function(err, res) {
if(err){
console.log(err);
return;
}
console.log('成功')
});

7,删除数据

User.deleteOne({ _id: '5b72ada84e284f0acc8d318a' }, function (err) {
if (err) {
console.log(err);
return;
}
// deleted at most one tank document
console.log('成功');
});

8,保存成功查找

var u=new User({
name:'zxb', age:20, status:true //类型转换
})
u.save(function(err,docs){
if(err){
console.log(err);
return;
}
//console.log(docs);
User.find({},function(err,docs){
if(err){
console.log(err);
return;
}
console.log(docs);
})
});

二,AngularJS学习

 angular.module('App', []);   使用angular.module()方法来声明模块   
    //这个方法能够接受两个参数,第一个是模块的名称,第二个是依赖列表,
    //也就是可以被注入到模块中的对象列表。

AngularJS 应用程序由 ng-app 定义。应用程序在 div 内运行。
ng-controller=“myctrl” 属性是一个 AngularJS 指令。用于定义一个控制器。
myctrl 函数是一个 JavaScript 函数。
AngularJS 使用$scope 对象来调用控制器。
在 AngularJS 中, $scope 是一个应用对象(属于应用变量和函数)。
控制器的 $scope (相当于作用域、控制范围)用来保存AngularJS Model(模型)的对象。
控制器在作用域中创建了两个属性 (firstName 和 lastName)。
ng-model 指令绑定输入域到控制器的属性(firstName 和 lastName)。

简单案例:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
  <title>AngularJS测试</title>
  <style type="text/css">
    #out{width: 500px;margin: 50px auto;overflow: hidden}
  </style>
</head>
<body ng-app="app">
<div id="out" ng-controller="ctrl">
  <div class="input-group">
    <input type="text" class="form-control" placeholder="请输入录入信息" ng-model="ipt1">
      <span class="input-group-btn">
        <button class="btn btn-default" type="button" ng-click="add()">添加</button>
      </span>
  </div>
    <h2>基本信息为: </h2>
    <table class="table">
      <tr><th>序号</th><th>信息</th><th>操作</th><th>操作</th></tr>
      <tr ng-repeat="(index,x) in list"><td>{{index+1}}</td><td>{{x}}</td>
          <td><button class="btn btn-danger btn-sm" ng-click="del(index)">删除</button></td>
          <td><button class="btn btn-default btn-sm" ng-click="resize(index)">修改</button></td>
      </tr>
    </table>
</div>
</body>
<script type="text/javascript">
  angular.module('app',[]).controller('ctrl',function ($scope) {
    $scope.list=[];
    $scope.add=function () {
      $scope.list.push($scope.ipt1)
      $scope.ipt1=''
    }
    $scope.del=function (a) {
      $scope.list.splice(a,1)
    }
    $scope.resize=function (a) {
      var str=prompt('请输入要修改的数据','')
      if (str==''){
        return false;
      }else {
        $scope.list[a]= str
      }
    }
  })
</script>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值