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({}).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请求:
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常用代码片段的更多相关文章
- C#常用代码片段备忘
以下是从visual studio中整理出来的常用代码片段,以作备忘 快捷键: eh 用途: 类中事件实现函数模板 private void MyMethod(object sender, Event ...
- 36个Android开发常用代码片段
//36个Android开发常用代码片段 //拨打电话 public static void call(Context context, String phoneNumber) { context.s ...
- Jquery学习总结(1)——Jquery常用代码片段汇总
1. 禁止右键点击 ? 1 2 3 4 5 $(document).ready(function(){ $(document).bind("contextmenu",fun ...
- jQuery常用代码片段
检测IE浏览器 在进行CSS设计时,IE浏览器对开发者及设计师而言无疑是个麻烦.尽管IE6的黑暗时代已经过去,IE浏览器家族的人气亦在不断下滑,但我们仍然有必要对其进行检测.当然,以下片段亦可用于检测 ...
- Vue3.0常用代码片段和开发插件
Vue3 Snippets for Visual Studio Code Vue3 Snippets源码 Vue3 Snippets下载 This extension adds Vue3 Code S ...
- Ext.NET Ext.JS 常用代码片段摘录
引言 最近写代码突然有"一把梭"的感觉, 不管三七二十一先弄上再说. 换别人的说法, 这应该是属于"做项目"风格法吧. 至于知识体系, 可以参考官方或者更权威的 ...
- Play常用代码片段 http://www.anool.net/?p=625
持续更新中: (1)按照降序查询: List<Entity> entities= Entity.find("order by id desc").fetch(2); ...
- Android开发常用代码片段
拨打电话 public static void call(Context context, String phoneNumber) { context.startActivity( new Inten ...
- ide phpStorm常用代码片段设置
1.打开设置(File -> Settings) 2.如图 3 . 最后,在PHP文件中输入 ll 并按 TAB 即可打出代码块
随机推荐
- CentOS安装配置MongoDB
1.下载安装包: wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.3.tgz 2.解压: tar -zxvf mongodb-l ...
- ImportError: No module named images
[问题] 在使用学习wxPython时,一个Dem抱有如题所示错误 [解决] images 只不过是wxpython自带demo中的一个文件 体验wxpython IN action的时候Import ...
- python——文件处理
1.文件处理 f = open(file="file01.txt", mode="r", encoding="utf-8") #python ...
- ReactiveCocoa实战: 模仿 "花瓣",重写 LeanCloud Rest Api的iOS REST Client.
这一次我们将要讨论的是移动开发中比较重要的一环--网络请求的封装.鉴于个人经验有限,本文将在一定程度上参考 基于AFNetworking2.0和ReactiveCocoa2.1的iOS REST Cl ...
- tree树形
/** * tree * @param menuBeans * @param pid * @return */ public JSON makeTree(List<MenuBean& ...
- kruscal 模板
/* Kruskal模板 */ struct edge{ int from; int to; int next; int value; bool operator<(const edge a) ...
- 堆(heap)和栈(stack)几点认识
堆(heap)和栈(stack)主要的区别由以下几点:1.管理方式不同:2.空间大小不同:3.产生碎片不同:4.生长方向不同:5.分配归属不同:6.分配效率不同:7.存取效率不同:管理方式:对于栈来讲 ...
- Linux实战教学笔记16:磁盘原理
第十五节 磁盘原理 标签(空格分隔): Linux实战教学笔记 1,知识扩展 非脚本方式的一条命令搞定批量创建用户并设置随机10位字母数字组合密码. 1.1 sed的高级用法 [root@chensi ...
- LNMP+HAProxy+Keepalived负载均衡 - 基础服务准备
日志服务 修改日志服务配置并重启日志服务: ``` vim /etc/rsyslog.conf ``` 编辑系统日志配置,指定包含的配置文件路径和规则: ``` $IncludeConfig /etc ...
- python--Wrapper
然后给大家介绍的是Wrapper(装饰器),使用广泛.python笔试,面试的话也会百分百问到的,基础和中级的知识储备还是必用的. 让我们开始. 先来一些基础相关知识 *args,**kwargs的区 ...