基于nodeJS实现的几个功能

    xiaoxiao2021-04-16  35

    上传头像

    1.使用文件上传中间件multer

    npm install multer --save

    2.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 --save

    2.编写配置内容config.js,可以自定义参数,配置参数对应的值

    var config = { host: '', uploadUrl : '' }; module.exports = config;

    3.在需要声明的文件中导入配置文件,require的内容即为配置文件config.js的绝对路径

    /** * 导入配置文件 */ var config = require('./config/config');

    打印日志

    1.使用log4js

    npm install log4js --save

    2.在工程根目录下配置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("");

    生成uuid

    1.使用uuid模块

    npm install uuid --save

    2.导入uuid模块

    //使用uuid var UUID = require('uuid');

    3.使用uuid

    /** * 生成激活码 * UUID.v1 基于时间戳生成(time based) * UUID.v4 随机生成(random), 有一定几率重复 */ var ActiCode = UUID.v1();

    发邮件

    1.使用nodemailer模块

    npm install nodemailer --save

    2.发送邮件逻辑

    /** * 设置邮件内容 * @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-image

    jade界面

    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); });

    发送http请求


    1.使用request模块

    npm install request --save

    2.发送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");
    转载请注明原文地址: https://ju.6miu.com/read-672168.html

    最新回复(0)