1.使用文件上传中间件multer
npm install multer --save2.jade界面表单
.form-group label File input input#file(type='file', name='file') p#result img#img(src='') button#upload.btn.btn-default 提交3.ajax获取发起请求(upload.js)
/** * 图片上传 */ var url = '/uploadUserImage'; $('#upload').click(function () { var file = document.getElementById("file"); var formData = new FormData(); formData.append('file',file.files[0]); $.ajax({ url: url, type: 'POST', data: formData, // async: false, cache: false, contentType: false, processData: false, success: function(data){ if(200 === data.code) { $('#result').html("上传成功!"); $('#img').attr('src',data.data); } else { $('#result').html("上传失败!"); } console.log('imgUploader upload success'); }, error: function(){ $("#result").html("与服务器通信发生错误"); } }); });4.后台逻辑 (1)导入multer模块
var multer = require('multer');(2)配置multer服务
var storage = multer.diskStorage({ destination: function (req, file, cb){ cb(null, './public/images/upload') }, filename: function (req, file, cb){ cb(null, file.originalname) } }); var upload = multer({ storage: storage }); /** * 上传用户头像 */ router.post('/uploadUserImage', upload.single('file'), user.uploadUserImage);(3)上传成功后的逻辑
/** * 上传用户头像 */ exports.uploadUserImage = function (req, res) { var url = 'http://' + req.headers.host + '/images/upload/' + req.file.originalname; res.json({ code : 200, data : url }); // res.end(); };1.使用config模块
npm install config --save2.编写配置内容config.js,可以自定义参数,配置参数对应的值
var config = { host: '', uploadUrl : '' }; module.exports = config;3.在需要声明的文件中导入配置文件,require的内容即为配置文件config.js的绝对路径
/** * 导入配置文件 */ var config = require('./config/config');1.使用log4js
npm install log4js --save2.在工程根目录下配置log4js.json,参数filename和pattern指定产生的log文件
{ "appenders": [ { "category":"console", "type":"console" }, { "category":"normal", "type": "dateFile", "filename": "/var/log/graduation-alfred-jade-log/weibo", "alwaysIncludePattern": true, "pattern": "-yyyy-MM-dd.log", "maxLogSize": 1024, "backups": 30 } ], "replaceConsole": true, "levels": { "normal":"ALL", "console":"ALL" } }3.引用log4js.json,配置log4js.js
/** * 导入模块 */ var log4js = require("log4js"); /** * 导入json配置文件 */ var log4js_config = require("../log4js.json"); /** * 配置路径 */ log4js.configure(log4js_config); /** * 导出函数 * @returns {Logger} */ exports.getLogger = function (file) { return log4js.getLogger(file || 'normal'); };4.在需要打印日志的文件中导入log模块
/** * 使用log4js * @type {Logger} */ var Logger = require("../Logger.js").getLogger();5.使用log
Logger.info("");1.使用uuid模块
npm install uuid --save2.导入uuid模块
//使用uuid var UUID = require('uuid');3.使用uuid
/** * 生成激活码 * UUID.v1 基于时间戳生成(time based) * UUID.v4 随机生成(random), 有一定几率重复 */ var ActiCode = UUID.v1();1.使用nodemailer模块
npm install nodemailer --save2.发送邮件逻辑
/** * 设置邮件内容 * @type {string} */ var subject = ''; // 标题 var text = '' ; var html = ''; // 邮件内容 /** * 创建服务 */ var transporter = nodemailer.createTransport({ service: 'qq', port: 465, // SMTP 端口 secureConnection: true, // 使用 SSL auth: { user: blogSystem.user, //发件人 pass: blogSystem.pass //smtp密码 } }); /** * 设置参数 * @type {{from: string, to: string, subject: string, text: string, html: string}} */ var mailOptions = { from: blogSystem.user, // 发件地址 to: email, // 收件列表 subject: subject, // 标题 //text和html两者只支持一种 text: text, // 标题 html: html // html 内容 }; /** * 发送邮件 */ transporter.sendMail(mailOptions, function(error, info){ if(error){ return console.log(error); } console.log('Message sent: ' + info.response); });使用qr-image模块
npm install qr-imagejade界面
img(src='http://localhost:3000/makeQrCode')后台请求
var qr_image = require('qr-image'); /** * 生成二维码 */ router.get('/makeQrCode', function(req, res, next) { var temp_qrcode = qr_image.image('http://www.baidu.com'); res.type('png'); temp_qrcode.pipe(res); });1.使用request模块
npm install request --save2.发送http请求
const AlarmClient = exports; var request = require('request'); var DEFAULT_URL = '; function send(code, content, level) { var option = { url: DEFAULT_URL, method: "POST", json: true, headers: { "Content-type": "application/json; charset=UTF-8" }, body: { code: code, content: content, isTest: false, level: level } }; request(option,function (error, response, body) { if (!error && response.statusCode === 200) { console.log('request is success '); } else { console.log('request is error', error); } }); } send(code, content, "DEBUG");