zoukankan      html  css  js  c++  java
  • express常用代码片段

    请求模块:

    var express = require('express');
    var router = express.Router();  // 拿到express框架的路由
    var mongoose = require('mongoose');
    var Goods = require('../models/goods');

    创建Schema:

    // 定义一个Schema
    var orderSchema = new Schema({
        'orderId':String,   
        'orderState':{type:Number,default:1}, 
        'orderList':[          
            {
                "productImage":String,
                "productNum":Number,  
            }
        ]
    })

    router-get:

    router.get('/list', function(req, res, next) {
        let priceLevel = req.param("priceLevel");  
    })

    router-post:

    router.post("/commit",function(req, res, next){
        var userId=req.get("userId");  //获取header里的数据
        userName = req.body.userName; 
        describe = JSON.parse(req.body.describe);

    查找数据并||操作数组:

    User.findOne({
          userId:userId   // 查询条件
        },function(err,userDoc){
          if(err){
            res.json({
              status:"1",
              msg:err.message
            })
          }else{
            console.log("userDoc"+userDoc);  // 用户数据
            if(userDoc){
              let goodsItem = '';
              userDoc.cartList.forEach(function(item){    // 遍历用户购物车,判断加入购物车的商品是否已经存在
                if(item.productId == productId){
                  goodsItem = item;
                  item.productNum++; // 购物车这件商品数量+1
                }
              })

    创建新的文档实例:

    new oMessage({
            userName:userName
        }).save(function(err,doc){
            if(err){
                res.json({
                    status:"1",
                    msg:err.message
                })
            }else{
                res.json({
                    status:'0',
                    msg:'新增成功!!',
                    result:doc
                })
            }
        })

    获取文档集合:

    oMessage.find().exec(function(err,message){
            if(err){
                res.json({
                    status:1,
                    message:'message获取失败!'
                })
                return
            }
            res.json({
                status:0,
                messageList:message
            })
    
    });

      oGoods.find({'productId':proId},function(err, doc){ ............. })
     

    条件查询:

    oGoods.find({}).where(typeName).equals(typeVal).exec(function(err,goodsdoc){
            if(err) console.log(err)
            res.json({
                status:'0',
                msg:'分类查询成功',
                goodsList:goodsdoc
            })
     })

    修改文档-数组中的一个属性:

    ouser.update({// 查询条件
       "userId":updateUserId,
       "cartList.productId":productId
    },{
    // 修改的数据 "cartList.$.productNum":buynum
    },
    function(err,doc){ if(err){ res.json({ status:'1', }); }else{ res.json({ status:'0', }); } }); ..................

    给文档中的一个数组添加新元素:

    ouser.update(
    {userId:updateUserId}, { $push:{
    'cartList':productItem } },function(err, doc){ ...............

    删除文档中某个数组的某个元素:

    ouser.update(
    {userId:userId},
    {$pull:{"cartList":{productId:productId}}},
    function(err){.....
    .....

    清空文档中的某数组:

    ouser.findOne({userId:userId},function(err,userDoc){
            userDoc.cartList=[];
            userDoc.save(function (err,doc2) {
    .........

    https-get请求:

      var https = require("https");
    https.get(url, function (res) {
            var datas = [];
            var size = 0;
            res.on('data', function (data) {
                datas.push(data);
                size += data.length;
            });
            res.on("end", function () {
                var buff = Buffer.concat(datas, size);
                var result =JSON.parse(buff.toString());//转码//var result = buff.toString();//不需要转编码,直接tostring
                console.log(buff.toString());
                var openId=result.openid
            ...................
  • 相关阅读:
    设置QtCreator多核编译
    ZeroMQ研究与应用分析及学习资料
    彻底卸载Visual Studio 2013、Visual Studio 2015
    delphi 动态设置和访问cxgrid列的Properties
    delphi 拷贝文件时有进度显示
    Delphi 连接mysql的功能,去除乱码, 需要设置字符集
    cxGrid1 的使用方法
    Django day12 分页器
    Django day11(一) ajax 文件上传 提交json格式数据
    Django day08 多表操作 (五) 常用和非常用用字段
  • 原文地址:https://www.cnblogs.com/thing/p/9370098.html
Copyright © 2011-2022 走看看