Express.js通过Sequelize.js连接MySQL数据库

创建连接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const Sequelize = require('sequelize');

const sequelize = new Sequelize('数据库名', '数据库账号', '数据库密码', {
host: '主机名',
dialect: 'mysql',
port: '端口',
operatorsAliases: false,
timezone: '+08:00', // 时区,中国+8
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
});

sequelize
.authenticate()
.then(() => {
console.log('***数据库连接成功');
})
.catch(err => {
console.error('数据库连接失败:', err);
});

module.exports = sequelize;
阅读更多

node 图片验证码库

验证码演示

有库不用是傻逼,这个库有三组图片分别是red gray green ,其中red里面只是数字,不建议使用,剩下两个有字母和数字。

下面是一个老外写的例子,我就是直接参考它写的代码的。https://github.com/liangzeng/validat-num-demo

代码

1
2
3
4
5
6
7
8
9
10
11
12
var PW = require("png-word");
var pw = PW(PW.GRAY); //这里可以选GRAY PNGWord RED
var r = require("random-word")("abcdefghijklmnopqrst0123456789");

const validat = (req, res) => {
var numtxt = req.session.validat_num = r.random(4);
pw.createPNG(numtxt,function(pngnum){
res.send(pngnum);
})
}

module.exports = validat
阅读更多

关于 can't set headers after they are sent 错误解析

错误描述

这个错误翻译过来是在headers发送过以后不能再次发送。意思是发送了两次headers,所以会报错。

然后通过我的不懈努力,终于找到了问题所在。

解析

在处理HTTP请求时,服务器会先输出响应头,然后再输出主体内容,而一旦输出过一次响应头比如执行过 res.writeHead() 或 res.write() 或 res.end(),你再尝试通过 res.setHeader() 或 res.writeHead() 来设置响应头时,就会报这个错误。

有些方法比如 res.redirect() 会调用 res.writeHead()

说明:express中的 res.header() 相当于 res.writeHead() ,res.send() 相当于 res.write()

node.js爬虫练习 爬取数据存储到mongodb

youkumovie(优酷电影目录)

本人的node.js爬虫练习,大神无视,一直更新,爬虫爬到数据存储到数据库中。数据库为mongodb。总共30页,每3秒爬一次,到目前为止亲测没有被封ip,本人第一次写爬虫,大家多多包涵!

用到的库

1
2
3
4
"cheerio": "^1.0.0-rc.2",
"mongodb": "^2.2.33",
"request": "^2.83.0",
"request-promise": "^4.2.2"
阅读更多