https://www.jianshu.com/p/862e052d46a1
1)express模塊WEB開發框架
npm install express
var express = require('express') var app = express() app.get('/', function (req, res) { res.send('Hello World') }) app.listen(3000)
2)multer 處理文件上傳
var multer = require('multer') var upload = multer({ dest: 'uploads/' })
3)formformidable 處理表單圖片/文件上傳和參數上傳
var formidable = require('formidable'), http = require('http'), util = require('util'); http.createServer(function(req, res) { if (req.url == '/upload' && req.method.toLowerCase() == 'post') { // parse a file upload var form = new formidable.IncomingForm(); form.parse(req, function(err, fields, files) { res.writeHead(200, {'content-type': 'text/plain'}); res.write('received upload:\n\n'); res.end(util.inspect({fields: fields, files: files})); }); return; } // show a file upload form res.writeHead(200, {'content-type': 'text/html'}); res.end( '<form action="/upload" enctype="multipart/form-data" method="post">'+ '<input type="text" name="title"><br>'+ '<input type="file" name="upload" multiple="multiple"><br>'+ '<input type="submit" value="Upload">'+ '</form>' ); }).listen(8080);
4)node-xlsx 讀取Excel文件信息后綴只能是xlsx
var nodeExcel = require('node-xlsx'); var result = nodeExcel.parse(path);
5)cookie-parser是express的中間件
主要保存cookie
res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true })
文檔在express中可查看
6)express-session也是express的中間件
主要保存用戶session
7)crypto模塊 主要用於加密
此模塊是node自帶模塊無需npm安裝
具體使用方法在node文檔中
//md5加密 var crypto = require('crypto'); var hash = crypto.createHash('md5') var result = hash.update(加密的字段).digest('hex')
8)node處理用戶上傳的圖片例如裁剪,縮放什么的
1、下載一個軟件 GraphicsMagick
2、下載gm模塊 npm install gm
我們用nodejs實現一些功能時,往往需要對用戶輸入的數據進行驗證。來保證用戶輸入的是否合規。那么是否有個庫來幫我們來做這樣的事情呢?
接下來就給大家介紹一個庫---Joi
我總結了常用的一些方法,給大家分享出來,大家可以自行測試,好用才值得分享
第一部分 語法囊括與實例
// 通用類型登錄 let paramSchema = Joi.object().keys({ // 3 - 30 個 數字、字符 username: Joi.string().alphanum().min(3).max(30).required(), // 3 - 30 位 字母數字組合密碼 password: Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/), // string || number 都可以通過 access_token: [Joi.string(), Joi.number()], // 生日限制 birthyear: Joi.number().integer().min(1900).max(2018), // email 限制 email: Joi.string().email(), // URI限制 website: Joi.string().uri({ scheme: [ 'git', /git\+https?/ ] }), // ==== 允許為空/ 否認不允許為空 ==== search: Joi.string().allow(''), // 驗證枚舉值,如果不傳,默認為all type: Joi.string().valid('disabled', 'normal', 'all').default('all'), // 開始時間 會自動格式化 startTime: Joi.date().min('1-1-1974').max('now'), // 結束時間 必須大於開始時間,小於2100 endTime: Joi.when(Joi.ref('startTime'), { is: Joi.date().required(), then: Joi.date().max('1-1-2100') }), // 頁碼 限制最小值 page: Joi.number().integer().min(1).default(1), pageSize: Joi.number().integer().default(8), // deleteWhenLtTen: Joi.number().integer().