源码戳这里

假设您已经安装了 Node.js,创建目录以保存应用程序,并将其设置为工作目录。

1
$ npm install mysql

连接数据库

1
2
3
4
5
6
7
8
let mysql = require('mysql');
let sqluser = {
host : 'localhost',
user : 'root',
password : '123456',
database : 'test'
}
let connection = mysql.createConnection(sqluser);

执行以下代码即可查询出数据。

1
2
3
4
5
6
var  sql = 'SELECT * FROM sqlName';
connection.query(sql, (err, results, fields) => {
if(err){console.log('[SELECT ERROR] - ',err.message);return;}
console.log(results);
});
connection.end()

插入数据

1
2
3
4
5
6
7
8
let sql = `INSERT INTO users(name,tel,password)
VALUES(?,?,?,)`;
let data = ["name","tel","password"];
connection.query(sql,data, (err, results, fields) => {
if(err){console.log('[INSERT ERROR] - ',err.message);return;}
console.log(results);
});
connection.end()

更新数据

1
2
3
4
5
6
7
8
9
let sql = `UPDATE sqlName
SET name = ?,tel = ?,password = ?
WHERE id = ?`;
let data = ["name","tel","password"];
connection.query(sql,data, (err, results, fields) => {
if(err){console.log('[UPDATE ERROR] - ',err.message);return;}
console.log(results);
});
connection.end()

删除数据

1
2
3
4
5
6
7
let sql = `DELETE FROM sqlName WHERE id = ?`;
let data = id;
connection.query(sql,data, (err, results, fields) => {
if(err){console.log('[DELETE ERROR] - ',err.message);return;}
console.log(results);
});
connection.end()

上传图片

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
27
28
29
30
31
// 安装Node.js模块,用于解析表单数据,尤其是文件上载。
npm i formidable
// 引入formidable模块,和node fs文件系统。
var formidable = require('formidable');
var fs = require('fs')
// 创建一个新的传入表单。
var form = new formidable.IncomingForm()
// 为输入的表单字段设置编码。
form.encoding = 'utf-8';
// 设置用于放置文件上传的目录。您可以稍后使用fs.rename()移动它们。
form.uploadDir = 'public/images/';
// 如果您希望写入form.uploaddir的文件包含原始文件的扩展名,请设置
form.keepExtensions = true;//保留后缀
// 限制所有字段(文件除外)可以以字节为单位分配的内存量。如果超过此值,'error'则发出事件。默认大小为20MB。
form.maxFieldsSize = 2 * 1024 * 1024;
//处理图片
form.parse(req, function (err, fields, files){
// 存入硬盘
let filename = files.file.name
fs.renameSync(item.path, 'public/images/'+filename);
// 存入数据库
sql = `INSERT INTO img(title,name,img_src)
VALUES(?,?,?,?,?)`;
data = [fields.title,fields.name,'public/images/'+filename]
connection.query(sql,data, (err, results, fields) => {
if(err){console.log('[DELETE ERROR] - ',err.message);return;}
console.log(results);
res.status(200).json({msg:'上传成功',data:results});
});
connection.end()
})

Sms 短信验证码服务

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
27
28
29
30
const Core = require('@alicloud/pop-core');
var md5 = require('md5');
var client = new Core({
accessKeyId: '',
accessKeySecret: '',
endpoint: '',
apiVersion: '2017-05-25'
});
let sendSms = function (PhoneNumbers,callback) {
let code = Math.floor(Math.random()) // 这里可以乘想获得的验证码长度~
let params = {
"RegionId": "cn-hangzhou",
"PhoneNumbers": PhoneNumbers.toString(),
"SignName": "小小小小的商城",
"TemplateCode": "SMS_160571696",
"TemplateParam": "{code:"+code+"}"
}
let requestOption = {
method: 'POST'
};
// console.log(code)
// callback && callback(md5(code))
client.request('SendSms', params, requestOption).then((result) => {
callback && callback({smsRes:result,code:md5(code)})
}, (ex) => {
callback && callback({smsRes:ex,code:ex.Message})
})
}

module.exports = sendSms;

验证码接口实现~

1
2
3
4
5
6
7
8
9
10
11
12
var express = require('express');
var router = express.Router();
var sendSms = require('../library/sms')
router.post('/', function (req, res) {
console.log(req.body)
sendSms(req.body.tel,(smsMsg)=>{
console.log(smsMsg)
res.status(200).json(smsMsg)
})
})

module.exports = router;