请求模块:

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. hiho 第135周 九宫

    题目链接:http://hihocoder.com/contest/hiho135/problem/1 由于是九宫格,全排列也就是9! (362880)种方式,我就直接暴力枚举排列好了. #inclu ...

  2. 2017.10.24 Java 详解 JVM 工作原理和流程

    JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界 ...

  3. python_1_变量的使用

    print("hello word") name="Qi Zhiguang" print("My name is",name) name2= ...

  4. 搭建ssm中遇到的问题

    1.多模块pom.xml文件无效 原因是没有指定模块

  5. mysql常用命令添加外键主键约束存储过程索引

    数据库连接 mysql -u root -p123456 查看表 show databases 创建数据库设置编码 create table books character set utf8; 创建用 ...

  6. CocoaAsyncSocket使用

    代理的.h文件 #import <Foundation/Foundation.h> #import "GCDAsyncSocket.h" typedef void(^S ...

  7. C# 委托知识总结【转】

    1.什么是委托,为什么要使用委托 我正在埋头苦写程序,突然想喝水,但是又不想自己去掉杯水而打断自己的思路,于是我就想让女朋友去给我倒水.她去给我倒水,首先我得让她知道我想让她干什么,通知她之后我可以继 ...

  8. Servlet学习笔记04——什么是重定向,servlet生命周期?

    1.重定向 (1)什么是重定向? 服务器通知浏览器访问一个新的地址. 注: 服务器可以通过发送一个302状态码及一个 Location消息头(该消息头的值是一个地址,一般 称之为重定向地址)给浏览器, ...

  9. 前端vue项目部署到tomcat,一刷新报错404解决方法

    公司前端写的后台部署到tomcat webapps目录下后,无法进行刷新,一刷新就会报错404,自动跳的404页面.在网上查了下,官方说是HTML5 History 模式引发的问题,但是解决方案中,并 ...

  10. C#基础-面向对象-继承

    继承 新建一个基类 对Person类3个字段进行重构->封装字段 效果如下: public string Name { get => name; set => name = valu ...