Express
快速,簡單,極簡的節點Web框架
cheerio
const cheerio = require(\’cheerio\’);
const $ = cheerio.load(\’
-
…
\’);
nodemailer
從Node.js發送電子郵件
const nodemailer = require("nodemailer"); let testAccount = await nodemailer.createTestAccount(); let transporter = nodemailer.createTransport({ host: "smtp.ethereal.email", port: 587, secure: false, auth: { user: testAccount.user, pass: testAccount.pass } }); let info = await transporter.sendMail({ from: \'"Fred Foo " <foo@example.com>\', to: "bar@example.com, baz@example.com", subject: "Hello ✔", text: "Hello world?", html: "Hello world?" });
socket.io
const server = require(\'http\').createServer(); const io = require(\'socket.io\')(server); io.on(\'connection\', client => { client.on(\'event\', data => { ... }); client.on(\'disconnect\', () => { ... }); }); server.listen(3000);
好處
· 實施實時分析,二進制流,實例消息傳遞和文檔協作
· 知名用戶包括Microsoft Office,Yammer和Zendesk
Multer
地址:https://www.npmjs.com/package/multer
Multer是一個Node.js中間件,用於處理 multipart/form-data 類型的表單數據,主要用於文件上傳。
Moment
地址:https://www.npmjs.com/package/moment
一個輕量級的JavaScript日期庫,用於解析,驗證,操作和格式化日期。
lodash
地址:https://www.npmjs.com/package/lodash
Lodash 減少數組、數字、對象、字符串等工作的麻煩,它讓 JS 變得更容易。
chalk
地址:https://www.npmjs.com/package/chalk
chal 可譯為“粉筆”,node 終端樣式庫,主要功能為使輸出不再單調,添加文字背景,改變字體顏色
chalk
地址:https://www.npmjs.com/package/chalk
chal 可譯為“粉筆”,node 終端樣式庫,主要功能為使輸出不再單調,添加文字背景,改變字體顏色
validator
地址:https://www.npmjs.com/package/validator
輕量,快捷,易擴展的前端的驗證工具,無其他包依賴無樣式,可以適合絕大部分使用情景,開發人員可根據項目環境自行組裝反饋的錯誤信息給用戶。
JSDoc
地址:https://www.npmjs.com/package/jsdoc
JSDoc是一個根據javascript文件中注釋信息,生成JavaScript應用程序或庫、模塊的API文檔 的工具。
Helmet
地址:https://www.npmjs.com/package/helmet
Helmet是一系列幫助增強Node.JS之Express/Connect等Javascript Web應用安全的中間件。
一些著名的對Web攻擊有XSS跨站腳本, 腳本注入 clickjacking 以及各種非安全的請求等對Node.js的Web應用構成各種威脅,使用Helmet能幫助你的應用避免這些攻擊。
Crypto-js
地址:https://www.npmjs.com/package/crypto-js
CryptoJS (crypto.js) 為 JavaScript 提供了各種各樣的加密算法。
forever
可能是確保給定 node 腳本連續運行的最常用工具。遇到任何意外故障時,可以使你的 Node.js 流程保持在生產中。
bluebird
功能全面的 Promises / A + 實現,具有出色的性能
Faker
var faker = require(\'faker\'); var randomName = faker.name.findName(); // Rowan Nikolaus var randomEmail = faker.internet.email(); // Kassandra@erich.biz var randomCard = faker.helpers.createCard(); // random contact card
好處
· 在API后端構建尚未完成的情況下構建前端UI並與數據進行交互
· 多種API方法,包括地址,公司,數據庫,圖像,名稱(firstName,lastName)
morgan
例如GET / 200 51.267 ms — 1539
morgan
(\':method :url :status :res[content-length] - :response-time ms\') --- var express = require(\'express\') var morgan = require(\'morgan\') var app = express() app.use(morgan(\'combined\')) app.get(\'/\', function (req, res) { res.send(\'hello, world!\') })
好處
· 將請求記錄在控制台,文件,數據庫中
· 調試和日志歷史記錄
http-errors
app.use(function (req, res, next) { if (!req.user) return next(createError(401, \'Please login to view this page.\')) next() })
好處
· 易於發送錯誤響應
· 許多錯誤屬性可用
expose
headers
message
status
statusCode
body-parser
在處理程序之前在中間件中解析傳入的請求主體,該處理程序在req.body屬性下可用
var express = require(\'express\') var bodyParser = require(\'body-parser\') var app = express() // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json())
好處
· 解釋請求正文
· 許多選項,例如inflate,type,verify
sequelize
它具有可靠的事務支持,關系,急切和延遲加載,讀取復制等功能
const sequelize = new Sequelize
(\'database\', \'username\', \'password\', { host: \'localhost\', dialect: /* one of \'mysql\' | \'mariadb\' | \'postgres\' | \'mssql\' */ });
好處
· Node.js ORM
passport
Passport的唯一目的是對請求進行身份驗證,它通過一組稱為策略的可擴展插件來完成
passport.use(new LocalStrategy( function(username, password, done) { User.findOne({ username: username }, function (err, user) { if (err) { return done(err); } if (!user) { return done(null, false); } if (!user.verifyPassword(password)) { return done(null, false); } return done(null, user); }); } ));
好處
· Node.js身份驗證
· 與OAuth和OpenID集成(Facebook,Twitter等…登錄)
Dotenv
將配置與代碼分開存儲在環境中
require(\'dotenv\').config() const db = require(\'db\') db.connect({ host: process.env.DB_HOST, username: process.env.DB_USER, password: process.env.DB_PASS }) // .env file DB_HOST=localhost DB_USER=root DB_PASS=s1mpl3
好處
· 加載環境變量,例如AWS,sql用戶名,部署,連接到其他工具所需的密碼
· 將配置與代碼分開存儲在環境中
multer
var express = require(\'express\') var multer = require(\'multer\') var upload = multer({ dest: \'uploads/\' }) var app = express() app.post(\'/profile\', upload.single(\'avatar\'), function (req, res, next) { // req.file is the `avatar` file // req.body will hold the text fields, if there were any }) app.post(\'/photos/upload\', upload.array(\'photos\', 12), function (req, res, next) { // req.files is array of `photos` files // req.body will contain the text fields, if there were any })
好處
· 易於上傳多部分/表單數據文件
axios
const axios = require(\'axios\'); // Make a request for a user with a given ID axios.get(\'/user?ID=12345\') .then(function (response) { // handle success console.log(response); }) .catch(function (error) { // handle error console.log(error); }) .finally(function () { // always executed });
好處
· 從node.js發出HTTP請求
· 從瀏覽器發出XMLHttpRequests
· 支持Promise API
CORS
var express = require(\'express\') var cors = require(\'cors\') var app = express() app.use(cors()) app.get(\'/products/:id\', function (req, res, next) { res.json({msg: \'This is CORS-enabled for all origins!\'}) }) app.listen(80, function () { console.log(\'CORS-enabled web server listening on port 80\') })
好處
· 輕松處理CORS問題