请求模块:

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
...................

express常用代码片段的更多相关文章

  1. C#常用代码片段备忘

    以下是从visual studio中整理出来的常用代码片段,以作备忘 快捷键: eh 用途: 类中事件实现函数模板 private void MyMethod(object sender, Event ...

  2. 36个Android开发常用代码片段

    //36个Android开发常用代码片段 //拨打电话 public static void call(Context context, String phoneNumber) { context.s ...

  3. Jquery学习总结(1)——Jquery常用代码片段汇总

    1. 禁止右键点击 ? 1 2 3 4 5 $(document).ready(function(){     $(document).bind("contextmenu",fun ...

  4. jQuery常用代码片段

    检测IE浏览器 在进行CSS设计时,IE浏览器对开发者及设计师而言无疑是个麻烦.尽管IE6的黑暗时代已经过去,IE浏览器家族的人气亦在不断下滑,但我们仍然有必要对其进行检测.当然,以下片段亦可用于检测 ...

  5. Vue3.0常用代码片段和开发插件

    Vue3 Snippets for Visual Studio Code Vue3 Snippets源码 Vue3 Snippets下载 This extension adds Vue3 Code S ...

  6. Ext.NET Ext.JS 常用代码片段摘录

    引言 最近写代码突然有"一把梭"的感觉, 不管三七二十一先弄上再说. 换别人的说法, 这应该是属于"做项目"风格法吧. 至于知识体系, 可以参考官方或者更权威的 ...

  7. Play常用代码片段 http://www.anool.net/?p=625

    持续更新中: (1)按照降序查询: List<Entity> entities= Entity.find("order by id desc").fetch(2);   ...

  8. Android开发常用代码片段

    拨打电话 public static void call(Context context, String phoneNumber) { context.startActivity( new Inten ...

  9. ide phpStorm常用代码片段设置

    1.打开设置(File -> Settings) 2.如图 3 . 最后,在PHP文件中输入 ll 并按 TAB 即可打出代码块

随机推荐

  1. Eclipse快捷键功能

    转载一篇另人写的:https://blog.csdn.net/qq_30617755/article/details/50781003 Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能 ...

  2. [Python]面向对象近期笔记-super

    Python面向对象高级 直接调用父类方法 class A: def __init__(self): print("hello") class B(A): def __init__ ...

  3. python 面向对象(一)--类(class)和实例(Instance)

    面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可 ...

  4. 使用ssl模块配置同时支持http和https并存

    博客已经迁移,请访问: https://www.helingfeng.com

  5. mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法

    mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日 ...

  6. python-类对象以列表切片模式操作

    #类对象以列表切片模式操作 class Person: def __init__(self): self.cache=[] def __setitem__(self, key, value): #修改 ...

  7. 基于建模的视觉定位(SFM-Based Positioning)

    具体方法来自我参与的这篇journal: Vision-Based Positioning for Internet-of-Vehicles, IEEE Transactions on Intelli ...

  8. 基于指令的移植方式的几个重要概念的理解(OpenHMPP, OpenACC)-转载

    引言: 什么是基于指令的移植方式呢?首先我这里说的移植可以理解为把原先在CPU上跑的程序放到像GPU一样的协处理器上跑的这个过程.在英文里可以叫Porting.移植有两种方式:一种是使用CUDA或者O ...

  9. js世界这么大,闭包想看看

    什么是闭包,为什么要用他?闭包是能够访问其他函数作用域的函数.我们来分析下句子成分(语文大神),闭包是函数,js函数的作用域分为全局作用域,局部作用域,eval作用域,并没有块级作用域形象的讲,每个函 ...

  10. hdu_5288_OO’s Sequence

    OO has got a array A of size n ,defined a function f(l,r) represent the number of i (l<=i<=r) ...