脚本宝典收集整理的这篇文章主要介绍了只要花5分钟就能掌握的nodejs技巧个人总结同步性能和模块应用,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。Node.js 受益于它的事件驱动和异步的特征,已经很快了。但是,在现代网络中只是快是不行的。如果你打算用 Node.js 开发你的下一个Web 应用的话,那么你就应该无所不用其极,让你的应用更快,异常的快。本文将介绍 10 条,经过检验得知可大大提高 Node 应用的技巧。废话不多说,让我们逐条来看看。
function runInParallel() {
async.parallel([
getUserProfile,
getRecentActivity,
getSubscriptions,
getNotifications
], function(err, results) {
//This callback runs when all the functions complete
});
}
// Asynchronous
fs.reaDFile('file.txt', function(err, buffer) {
VAR content = buffer.toString();
});
// Synchronous
var content = fs.readFileSync('file.txt').toString();
Post.find().limit(10).exec(function(err, posts) {
//send posts to client
});
不过问题是 Mongoose 的 find() 方法会把对象的所有字段都查询出来,而许多字段在主页上并不要求。比如说,commentsis 保存的是特定帖子的回复。我们不需要显示文章回复,所以我们可以在查询的时候把它给剔除掉。这无疑会提高速度。可以像这样优化上面那条查询:
Post.find().limit(10).exclude('comments').exec(function(err, posts) {
//send posts to client
});
var router = exPress.Router();
router.route('/latestPosts').get(function(req, res) {
Post.getLatest(function(err, posts) {
if (err) {
throw err;
}
res.render('posts', { posts: posts });
});
});
如果你不经常发贴的话,你可以把帖子列表缓存起来,然后一段时间之后再把它们清理掉。比如,我们可以用 Redis 模块来达到这个目的。当然,你必须在你的服务器上装 Redis。然后你可以用叫做 node_redis 的客户端来保存键/值对。下面的例子演示我们怎么缓存帖子:
var redis = require('redis'),
client = redis.createClient(null, null, { detect_buffers: true }),
router = express.Router();
router.route('/latestPosts').get(function(req,res){
client.get('posts', function (err, posts) {
if (posts) {
return res.render('posts', { posts: JSON.parse(posts) });
}
Post.getLatest(function(err, posts) {
if (err) {
throw err;
}
client.set('posts', JSON.stringify(posts));
res.render('posts', { posts: posts });
});
});
});
看到了吧,我们首先检查 Redis 缓存,看看是否有帖子。如果有,我们从缓存中拿这些帖子列表。否则我们就检索数据库内容,然后把结果缓存。此外,一定时间之后,我们可以清理 Redis 缓存,这样就可以更新内容了。
var compression = require('compression');
app.use(compression()); //use compression
app.use(express.static(path.join(__dirname, 'public')));
server {
listen 80;
server_name www.js-code.COM;
root /mnt/app;
index index.htML index.htm;
location /static/ {
try_files $uri $uri/ =404;
}
location /api/ {
Proxy_pass http://www.js-code.com;
}
}
以上是脚本宝典为你收集整理的只要花5分钟就能掌握的nodejs技巧个人总结同步性能和模块应用全部内容,希望文章能够帮你解决只要花5分钟就能掌握的nodejs技巧个人总结同步性能和模块应用所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。