mongoosejs 有一个跟 mongodb 的兼容性表格:
MongoDB Server 2.4.x: mongoose ^3.8 or 4.x
MongoDB Server 2.6.x: mongoose ^3.8.8 or 4.x
MongoDB Server 3.0.x: mongoose ^3.8.22, 4.x, or 5.x
MongoDB Server 3.2.x: mongoose ^4.3.0 or 5.x
MongoDB Server 3.4.x: mongoose ^4.7.3 or 5.x
MongoDB Server 3.6.x: mongoose 5.x
MongoDB Server 4.0.x: mongoose ^5.2.0
这是由于mysql自带的一段时间无动作会自动关闭的机制
使用闭包可以完美解决问题
var mysql = require('mysql')
var sqlConfig = {
host: 'localhost',
user: 'root',
password: 'pwd',
database: 'dbbase'
}
var conn = function(){
let connection = mysql.createConnection(sqlConfig)
connection.connect()
connection.on('error',err=>{
console.log('Re-connecting lost connection: ');
connection = mysql.createConnection(sqlConfig)
})
return function(){
return connection
}
}
module.exports = conn()
————————————————
版权声明:本文为CSDN博主「apades」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41535611/article/details/100798135
本文总结常见的使⽤node操作redis服务,redis的key是唯一的,如果一个key所对应的存储类型是string,则不能再次覆盖式设置key为hash;
docker run -d --name redis -p 6379:6379 redis:2.8
const redis = require('redis');
const client = redis.createClient( 6379, '127.0.0.1');
const util = require('util');
client.set('hello', 5, function(err, obj) {
client.incr('hello', function(err,data) {
client.get('hello', function(err,data) {
console.log(data); // 6
})
})
})
var obj = {
name:'sss',
age:223
}
client.hset("test", obj, function(err, obj) {
client.hgetall('test', (err, obj) => {
console.log(`hgetall:${JSON.stringify(obj)}`);
console.log(obj.age);
})
clie
刚刚开始学js,本文是基于node.js和websocket实现一个简单的在线聊天室系统(聊天群)。
本文适合纯小白阅读。
废话不多说,我们正式开始。
在B/S架构中,我们要得到一个数据,要向服务器请求,然后服务器响应。那么如果我们客户端不发送请求,服务器会不会主动给我们的客户端(浏览器)发东西呢?
答案是不会的,客户端和服务器通过TCP/IP协议进行连接,然后通过HTTP协议进行请求连接。而HTTP协议是一个请求—响应式的协议,而且它是一个无状态的协议,即每一次请求—响应之间是没有关系的。
而我们的聊天室需要什么呢?
1.发送消息 2.接收消息
在接收消息中:一个客户端给服务器发送消息,服务器接收消息,然后主动发给另一个客户端。
所以HTTP满足不了我们的要求。这里我们就要用到socket协议。当服务器与客户端连接后,两者都会时刻做着收发消息的准备。
首先在npm中下载socket.io模块(之前要安装了node.js才行)。打开cmd。
(我创建了一个node.js chat文件夹,文件都放在这里面)
然后开始写我们的服务器代码,创建文件server.js。
//server.js
var http = require('http');
var fs = require('fs');
var ws = require('socket.io'); //引入socket.io
var server = http.createServer(function (req, res) {
var html = fs.readFileSync('./client.html');
//client.html是发送给客户端的文件(客户端界面)
res.end(html);
}).listen(8000);
var io = ws(server); //http服务与ws服务相关联, 返回io服务实例
//监听用户的连接事件
io.on('connection',function (socket) {
//发生在用户连接io服务器时
console.log('有新用户进入房间');
//消息
一、 npm 运行错误:npm ERR! cb() never called!
D:\ProgramFiles\nodejs>npm install
npm ERR! cb() never called!
npm ERR! This is an error with npm itself. Please report this error at:
npm ERR! <https://npm.community>
npm ERR! A complete log of this run can be found in:
npm ERR! D:\ProgramFiles\nodejs\node_cache\_logs\2018-12-26T11_06_54_492Z-debug.log
二、 错误原因
三、 解决方案
npm cache clean --force
npm config rm proxy
npm config rm https-proxy
操作完以上步骤问题基本就解决了,如果还又错误就要详细看看是什么错误了!
自从Node横空出世后,很快有人就用它来开发爬虫,网上也常见Node爬虫教程。然而,很难看到一个通用的、功能丰富的爬虫开源项目,到Github上找了一下找到这个,算是目前能找到的最好的了。
这里将它的文档翻译一下,期待更多的实用案例。
node-crawler
目标打造成Node社区最强大和流行的爬虫/内容抽取工具库,且支持生产环境。
特性:
更新日志:https://github.com/bda-research/node-crawler/blob/master/CHANGELOG.md
$ npm install crawler
var Crawler = require("crawler");
var c = new Crawler({
maxConnections : 10,
// 这个回调每个爬取到的页面都会触发
callback : function (error, res, done) {
if(error){
console.log(error);
}else{
var $ = res.$;
// $默认使用Cheerio
// 这是为服务端设计的轻量级jQuery核心实现
console.log($("title").text());
}
done();
}
});
// 爬取一个URL,使用默认的callback
c.queue('http://www.amazon.com');
// 爬取URL列表
c.queue(['http://www.google.com/','http://www.yahoo.com']);
// 爬取页面,自