mongose 是一种以关系性数据库的思想来设计非关系性数据库
npm i mongoose
const mongoose = require("mongoose")
mongoose.connect('mongodb://localhost/test')
localhost默认使用(27017) 可用127.0.0.1:27017
mongoose.connect('mongodb://username:password@host:port/database)
Connection是数据库连接对象,专门负责连接的
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log("连接数据库yike成功")
});
var Schema = moogoose.Schema
var UserSchema = new Schema({
name:String,
age:Number,
status:Number
})
注意Model第一个参数一定要首字母大写
要和数据表(集合名字对应)
默认这个模型会和模型名称相同的复数的数据库表建立连接
如果你设置第三个参数,会和第三个参数的表建立连接
var User = db.Model(“User”,UserSchema)
User.find({},function(err ,doc){
if(err){
console .log(err);
return ;
console.log(doc);
})
var u=new User({
name :
李四,
age: 20
status :1
});
u.save( function(err){
if(err){
console. log(err);
return;
});
User.findOneAndUpdate(data,updata,(err,result)=>{})
User.countDocuments(wherestr, (err, result) => {
if (err) {
res.send({ status: 500 })
} else {
res.send({ status: 200, result })
}
})
let wherestr = { userID: data.uid, friendID: data.fid }
let updatestr = { markname: data.name }
Friend.updateOne(wherestr, updatestr, (res, result) => {
if (err) {
res.send({ status: 500, state: "修改失败 " })
} else
res.send({ status: 200, state: "修改成功", result })
})
let wherestr = { $or: [{ userID: data.uid, friendID: data.fid }, { userID: data.fid, friendID: data.uid }] }
let updatastr = { state: 0 }
Friend.updateMany(wherestr, updatastr, (err, result) => {
if (err) {
res.send({ status: 500 })
} else {
res.send({ status: 200 })
}
})
let wherestr = { $or: [{ userID: data.uid, friendID: data.fid }, { userID: data.fid, friendID: data.uid }] }
Friend.deleteMany(wherestr, (err, result) => {
if (err) {
res.send({ status: 500 })
} else {
res.send({ status: 200 })
}
})
在main主文件中
引用 weapp.socket.io
const io = require(“weapp.socket.io”)
const socket = io(“http://后端地址”)
挂载实例并引用
Vue.prototype.socket = socket
引入io并设置端口
const io = require(“socket.io”)(端口)
定义一个变量存贮用户数据
监听与客户端的连接事件
//进入聊天的用户新id
var users = {}
io.on('connection', (socket) => {
有个登录事件 会给每个用户赋值并保存
//用户登录注册id
socket.on("login", (id) => {
//返回的是socket的新id
// socket.emit("login", socket.id)
socket.name = id
users[id] = socket.id
})
发送信息会找到好友id去发送
//用户发送信息
socket.on("msg", ({ msg, uid, type, fid }) => {
console.log(msg)
//回复好友客户端
socket.to(users[fid]).emit('msg', msg, uid, fid, type)
})
离开时会删除自己的信息
//用户离开
socket.on("disconnecting", () => {
users.hasOwnProperty(socket.name) && delete users[socket.name]
})
})