以下是你需要在NodeJS中安装的包的总结:

如果要在实际运用中使用NodeJS,
最好安装并使用以下npm包。


○开发模式
即时重新启动代码修改时
·nodemon

○调试器
在运行时设置断点、变量监视功能
·node-inspector
要对目标服务器进行远程调试,请按照以下步骤进行操作
在服务器上启动node-inspector
$node –debug app.js
$node-inspector
从客户端执行ssh端口转发
$ssh -N -L 8080:127.0.0.1:8080 (用户名)@(服务器IP)
在客户端浏览器中访问以下地址
http://127.0.0.1:8080/debug?port=5858

○远程编辑器
・brackets
启动Brackets服务器
$ brackets –proj-dir (nodeJS服务器的目录) –supp-dir (放置Brackets配置文件的任意目录)
访问(server IP):6800
在浏览器中启动Brackets编辑器,可以直接编辑服务器文件(代码)

・基于浏览器自动测试驱动开发
– 浏览器同步

避免在Node.js环境中常见的回调地狱。可以编写出清晰的代码,同时错误处理也更加易读。
– async
– Q
由于Node.js 12之后可以直接使用ES6的Promise,可能没有必要使用这些库。

○关键部分
对于会导致同时访问出现问题的地方(例如相同文件的写入),进行锁定
– 信号量
对于 RDBMS 的事务,最好使用 sequelize。

可以实现持久化
还可以启动多个进程
·pm2

• 框架
路由管理、静态资源管理等
• express

○日志
访问日志
对于Express来说,以下是设置:
app.use(express.logger(‘dev’));
执行过程中输出日志
· lwl

– 会话管理
– cookie解析器
– express会话


app.use(express.cookieParser()); // cookie
app.use(express.session({
    secret: 'secret cat',
    cookie: { httpOnly: true,secure: true,maxAge:3600000 }, // add httpOnly and secure attr to be more safety
    resave: false,
    saveUninitialized: true,
    rolling: true
}));

 

在使用Express框架时,可以启用以下设置:
app.use(express.cookieParser());
为了提高安全性,还应该进行以下设置:
– 添加secure属性
– 添加httponly属性

○HTML模板引擎
传递nodejs参数以动态生成页面
·ect
还有pug(之前的jade)、ejs等等,但ect是最快的

○CSS模板引擎
可以将CSS模式函数化。
可以将带有前缀的内容整合到一个函数中。
·Less

○任务处理/文件变更监视
·gulp

网页加速
对JS和LESS进行压缩
– gulp-uglify
– gulp-less
– gulp-autoprefixer
进行gzip压缩
当使用express时,通过以下设置可以使响应内容被gzip压缩
app.use(express.compress());

客户端库管理
– bower
– browserify

响应式设计
– bootstrap

• 品质管理
• 猩猩-柏拉图

○考试
单元测试
· Jasmine
REST API测试
· Frisby

如果存在窃听威胁,或者有登录页面和表单输入页面的网页结构,则需要使用HTTPS。

为了防止跨站请求伪造(CSRF)攻击:
– 可以通过进行简单的CSRF防护来检查引用来源(req.headers[‘referer’])。

XSS防护
数据验证和消毒
– 验证器
在客户端不进行消毒就不可靠


如果使用数据库或认证的情况下,以下是可供选择的方式。

– MySQL:通过node-mysql模块可以在MySQL数据库上进行操作。
– MySQL的ORM:使用sequelize框架可以通过MySQL的ORM功能来存取数据。
– sequelize-cli:还可以利用下面npm模块来进行数据库迁移,将旧的数据库结构转换为新的数据库结构。

○Redis
– node-redis

○Redis
– Node.js版的Redis客户端(node-redis)

○OAuth验证
· 护照

○LDAP
・ldapjs

○LDAP
LDAP是一种轻量级目录访问协议,ldapjs是用于Node.js的一个库。


应赠品

服务器端渲染
· node-canvas
通过cairo引擎在服务器端进行canvas绘图
· reactjs
请参考以下示例
https://github.com/mhart/react-server-example

DOM绘画可能不再依赖于浏览器
XSS防御可以在服务器端完成
(实际可行性需要进一步验证)

广告
将在 10 秒后关闭
bannerAds